首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Pysftp错误

Python Pysftp错误
EN

Stack Overflow用户
提问于 2014-01-13 21:48:13
回答 3查看 34.2K关注 0票数 7

我的代码:

代码语言:javascript
复制
import pysftp 
s = pysftp.Connection(host='test.rebex.net', username='demo', password='password') 
data = s.listdir() 
s.close() 
for i in data: 
    print i

尝试使用pysftp连接到SFTP服务器时出现错误。

这应该足够直接了,但我得到了以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/Users/gavinhinfey/Documents/Python Files/sftp_test.py", line 3, in <module>
    s = pysftp.Connection(host='test.rebex.net', username='demo', password='password')
  File "build/bdist.macosx-10.6-intel/egg/pysftp.py", line 55, in __init__
  File "build/bdist.macosx-10.5-intel/egg/paramiko/transport.py", line 303, in __init__
paramiko.SSHException: Unable to connect to test.rebex.net: [Errno 60] Operation timed out
Exception AttributeError: "'Connection' object has no attribute '_tranport_live'" in <bound     method Connection.__del__ of <pysftp.Connection object at 0x101a5a810>> ignored

我尝试过使用不同版本的python (主要是2.7),我已经安装了所有的依赖项,并且我尝试了许多sftp连接。我使用的是OS 10.9.1。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-16 01:39:28

该初始错误似乎是与远程服务器(SSHException)连接时出现的问题。第二个错误(AttributeError)来自连接失败时代码中的错误。在最新版本的pysftp中已修复

https://pypi.python.org/pypi/pysftp

代码语言:javascript
复制
pip install -U pysftp

是你的朋友。

票数 6
EN

Stack Overflow用户

发布于 2016-07-13 22:53:12

更新包对我来说不起作用,因为它已经是最新的(至少是Python2.7的最新版本)

找到了更好的方法here

1)您可以手动将ssh密钥添加到known_hosts文件中

代码语言:javascript
复制
ssh test.rebex.net

2)或者你可以设置一个标志来忽略它

代码语言:javascript
复制
import pysftp
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None    # disable host key checking.
with pysftp.Connection('host', username='me',private_key=private_key,
                           private_key_pass=private_key_password,
                           cnopts=cnopts) as sftp
    # do stuff here
票数 14
EN

Stack Overflow用户

发布于 2021-02-05 00:21:15

@Martin.Prikryl:在使用pysftp编码的初始阶段,设置hostkeys = None非常有用。调试一个由于已知异常而不断失败的程序会隐藏其他需要注意的问题--比如建立实际的连接。一旦我知道我的代码工作正常,我可以稍后处理“中间人”问题。

@All:当前的pysftp.CnOpts()对象似乎有一个错误:

代码语言:javascript
复制
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None

上面的代码不会阻止主机密钥检查。

Files\Python\Python38\lib\site-packages\pysftp_init_.py",getfile_v3.py --帮助回溯(最近一次调用):文件"getfile_v3.py",第9行,在cnopts = pysftp.CnOpts()文件"c:\Program python第64行,在init raise HostKeysException(‘没有找到主机密钥’) pysftp.exceptions.HostKeysException:没有找到主机密钥

第二行不会被执行,因为第一行在默认情况下会执行主机密钥检查。如果我使用以下命令设置关键点:

代码语言:javascript
复制
      cnopts = pysftp.CnOpts(hostkeys=None)

同样的错误结果。

“hostkeys”似乎已被弃用,无法禁用主机密钥检查。

乔·怀特

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21092850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档