Paramiko 的 SFTP Python 连接
Paramiko's SFTP Python connection
我正在尝试使用 Paramiko 的库 Python (v2.7) 建立 SFTP 连接 http://docs.paramiko.org/en/2.1/api/sftp.html
根据网上的点点滴滴,我能够(无论如何我是这么认为的)使用私有加密证书进行连接。
看起来如下:
import paramiko
sftp = paramiko.SSHClient()
hostname = "sftp.host.com"
port = 8022
username = "sftplogin"
k = paramiko.RSAKey.from_private_key_file("private.pem", password="XXX")
sftp.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print "Connecting..."
sftp.connect(hostname, port, username=username, pkey=k )
print "Connected to: " + hostname + ":" + port
print sftp.getcwd()
sftp.close()
在这一点上,我只是想看看我是不是错觉,实际上并没有连接,所以我试图打印一个 getcwd() 来获取当前目录......遗憾的是我无处可去,因为它返回此错误:
AttributeError: 'SSHClient' object has no attribute 'getcwd'
谁能告诉我为什么?我做错了什么?
提前致谢!
您实例化了一个 paramiko.SSHClient
object, but you're trying to execute SFTP Client methods。
您应该能够执行此操作以证明这一事实:
sftp.exec_command('pwd')
但我认为您打算实例化 SFTP class,而不是 SSH 客户端,所以这可能是您出错的地方。
这对我有用。
import os
import paramiko
host = "sftp.host.com"
port = 8022
transport = paramiko.Transport((host, port))
username = "sftplogin"
mykey = paramiko.RSAKey.from_private_key_file("private_export.pem", password="XXX")
print "Connecting..."
transport.connect(username = username, pkey = mykey)
sftp = paramiko.SFTPClient.from_transport(transport)
print "Connected."
print sftp.listdir()
sftp.close()
transport.close()
print "Closed connection."
我正在尝试使用 Paramiko 的库 Python (v2.7) 建立 SFTP 连接 http://docs.paramiko.org/en/2.1/api/sftp.html
根据网上的点点滴滴,我能够(无论如何我是这么认为的)使用私有加密证书进行连接。
看起来如下:
import paramiko
sftp = paramiko.SSHClient()
hostname = "sftp.host.com"
port = 8022
username = "sftplogin"
k = paramiko.RSAKey.from_private_key_file("private.pem", password="XXX")
sftp.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print "Connecting..."
sftp.connect(hostname, port, username=username, pkey=k )
print "Connected to: " + hostname + ":" + port
print sftp.getcwd()
sftp.close()
在这一点上,我只是想看看我是不是错觉,实际上并没有连接,所以我试图打印一个 getcwd() 来获取当前目录......遗憾的是我无处可去,因为它返回此错误:
AttributeError: 'SSHClient' object has no attribute 'getcwd'
谁能告诉我为什么?我做错了什么?
提前致谢!
您实例化了一个 paramiko.SSHClient
object, but you're trying to execute SFTP Client methods。
您应该能够执行此操作以证明这一事实:
sftp.exec_command('pwd')
但我认为您打算实例化 SFTP class,而不是 SSH 客户端,所以这可能是您出错的地方。
这对我有用。
import os
import paramiko
host = "sftp.host.com"
port = 8022
transport = paramiko.Transport((host, port))
username = "sftplogin"
mykey = paramiko.RSAKey.from_private_key_file("private_export.pem", password="XXX")
print "Connecting..."
transport.connect(username = username, pkey = mykey)
sftp = paramiko.SFTPClient.from_transport(transport)
print "Connected."
print sftp.listdir()
sftp.close()
transport.close()
print "Closed connection."