我需要一些帮助,当我尝试连接时,我会收到以下信息。我执行的脚本如下。有关如何解决此问题的任何建议?
此外,一旦我解决了这个问题,我希望在此脚本中添加侦听功能,直到结果文件可用并从其他远程目录下载。
提前谢谢
No hostkey for host mysftpserver.com found.
Exception AttributeError: "'Connection' object has no attribute
'_sftp_live'" in <bound method Connection.__del__ of <pysftp.Connection
object at 0x101d8cd50>> ignored
Process finished with exit code 0
脚本
import pysftp as sftp
def sftpExample():
try:
s = sftp.Connection(host='mysftpserver', port=1211, username='myusername', password='mypassword')
remotepath='/Orders/incoming/myfile.csv'
localpath='/Users/myusername/projects/order88.csv'
s.put(localpath,remotepath)
s.close()
except Exception, e:
print str(e)
sftpExample()
答案 0 :(得分:3)
pysftp documentation上的Stack Overflow和其他答案似乎也表明可以通过设置cnopts.hostkeys = None
来解决错误。
所以完整的代码就像是:
import pysftp
def sftpExample():
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None
with pysftp.Connection('hostname', username='me', password='secret', cnopts=cnopts) as sftp:
sftp.put('/Users/myusername/projects/order88.csv','/Orders/incoming/myfile.csv') # upload file to public/ on remote
sftp.close()
sftpExample()
希望它有所帮助!
答案 1 :(得分:-2)
根据pysftp documentation,您需要在~/.ssh/known_hosts
中拥有远程主机密钥。您可以通过ssh
命令连接到服务器来执行此操作(它会询问您是否要向主机文件添加新密钥;如果您信任远程主机的指纹,只需键入yes
)
官方文档还指出了如何完全禁用主机检查,但这是不推荐,因为它会破坏SSH身份识别的关键安全功能。