Pysftp:操作超时

时间:2019-09-22 20:18:34

标签: python sftp paramiko pysftp

我正在尝试使用以下脚本连接到服务器:

import pysftp

cnopts = pysftp.CnOpts()
cnopts.hostkeys = None 

srv = pysftp.Connection(host="sftp://my_ip:my_port", 
                        username="alessandro", password="alessandro", port=2222,
                        cnopts=cnopts)
data = srv.listdir()
srv.close()

for i in data:
    print (i)

如果我尝试使用相同的凭据通过FileZilla或类似的客户端访问,它将起作用;即使它显示以下警告,有关主机密钥算法和指纹的信息也是如此:

enter image description here

但是,该脚本无法正常运行,并报告以下错误:

  

SSHException:无法连接到sftp:// my_ip:my_port:[Errno 60]操作超时

即使我仅尝试使用 host = my_ip 。另外,如果我未设置cnopts,则找不到主机密钥。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

Connection constructorhost参数为:

  

远程计算机的主机名 IP

不是 URL

应该是:

srv = pysftp.Connection(host="my_ip", 
                        username="alessandro", password="alessandro", port=2222,
                        cnopts=cnopts)

此外,除非您不关心安全性,否则请不要设置cnopts.hostkeys = None
有关正确的解决方案,请参见Verify host key with pysftp