3

我需要一些帮助,当我尝试连接时收到以下消息。我正在执行的脚本如下。关于如何解决此问题的任何建议?

此外,一旦我解决了这个问题,我希望在这个脚本中添加监听直到结果文件可用并从不同的远程目录下载它的能力。

先感谢您

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()
4

2 回答 2

11

Stack Overflow上的pysftp 文档和其他答案似乎也表明可以通过设置来解决该错误。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()

希望能帮助到你!

于 2017-07-01T02:10:13.957 回答
0

根据pysftp 文档,您需要在~/.ssh/known_hosts. 您可以通过ssh命令连接到服务器来执行此操作(它会询问您是否要向主机文件添加新密钥;yes如果您信任远程主机的指纹,只需键入)。

官方文档还指出了如何完全禁用主机检查,但不建议这样做,因为它会破坏 SSH 识别的关键安全功能。

于 2017-07-01T01:57:24.290 回答