Paramiko的SFTP Python连接

2024-04-26 10:34:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用Paramiko的库http://docs.paramiko.org/en/2.1/api/sftp.html与Python(v2.7)建立SFTP连接

从零零碎碎的网上,我能够(我认为无论如何)使用一个私人加密证书连接。在

如下所示:

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'

谁能告诉我为什么吗?我做错什么了?在

提前谢谢!在


Tags: keyorghttphostparamikodocsportusername
2条回答

这对我很有效。在

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."

您实例化了一个^{}对象,但您试图执行SFTP Client methods。在

您应该能够执行此操作来证明这一事实:

sftp.exec_command('pwd')

但我认为您是想实例化SFTP类,而不是SSH客户机,所以这可能是您出错的地方。在

相关问题 更多 >