2016-07-24 5 views
1

私はpysftpを使っていくつかのファイルをダウンロードしてアップロードしています。この全く同じコードを私は1時間前に実行しても問題ありませんでしたが、今はこの「EOF交渉中」のエラーがあります。私はここで何が欠けていますか?Python pysft/paramiko '交渉中のEOF'エラー

>>> sftp = pysftp.Connection(host, username=user, password=pasw) 
>>> sftp 
<pysftp.Connection object at 0x7f88b25bb410> 
>>> sftp.cd('data') 
<contextlib.GeneratorContextManager object at 0x7f88b1a86910> 
>>> sftp.exists(filename) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/pysftp/__init__.py", line 827, in exists 
    self._sftp_connect() 
    File "/usr/local/lib/python2.7/dist-packages/pysftp/__init__.py", line 205, in _sftp_connect 
    self._sftp = paramiko.SFTPClient.from_transport(self._transport) 
    File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 132, in from_transport 
    return cls(chan) 
    File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 101, in __init__ 
    raise SSHException('EOF during negotiation') 
paramiko.ssh_exception.SSHException: EOF during negotiation 

EDIT: paramiko.transportため 有効logginし、次のように得た:

>>> import logging; logging.basicConfig(); logging.getLogger('paramiko.transport').setLevel(logging.DEBUG) 
>>> sftp = pysftp.Connection(host, username=user, password=pasw) 
DEBUG:paramiko.transport:starting thread (client mode): 0x27313b0L 
DEBUG:paramiko.transport:Local version/idstring: SSH-2.0-paramiko_1.16.0 
DEBUG:paramiko.transport:Remote version/idstring: SSH-2.0-OpenSSH_4.3p2 
INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_4.3p2) 
DEBUG:paramiko.transport:kex algos:[...] client lang:[u''] server lang:[u''] kex follows?False 
DEBUG:paramiko.transport:Kex agreed: diffie-hellman-group1-sha1 
DEBUG:paramiko.transport:Cipher agreed: aes128-ctr 
DEBUG:paramiko.transport:MAC agreed: hmac-sha2-256 
DEBUG:paramiko.transport:Compression agreed: none 
DEBUG:paramiko.transport:kex engine KexGroup1 specified hash_algo <built-in function openssl_sha1> 
DEBUG:paramiko.transport:Switch to new keys ... 
DEBUG:paramiko.transport:Attempting password auth... 
DEBUG:paramiko.transport:userauth is OK 
INFO:paramiko.transport:Authentication (password) successful! 
>>> sftp.cd('data') 
<contextlib.GeneratorContextManager object at 0x027371D0> 
>>> sftp.exists(filename) 
DEBUG:paramiko.transport:[chan 0] Max packet in: 32768 bytes 
DEBUG:paramiko.transport:[chan 0] Max packet out: 32768 bytes 
DEBUG:paramiko.transport:Secsh channel 0 opened. 
DEBUG:paramiko.transport:[chan 0] Sesch channel 0 request ok 
Traceback (most recent call last): 
DEBUG:paramiko.transport:[chan 0] EOF received (0) 
    File "<stdin>", line 1, in <module> 
    File "C:\Python27\lib\site-packages\pysftp.py", line 802, in exists 
DEBUG:paramiko.transport:[chan 0] EOF sent (0) 
    self._sftp_connect() 
    File "C:\Python27\lib\site-packages\pysftp.py", line 192, in _sftp_connect 
    self._sftp = paramiko.SFTPClient.from_transport(self._transport) 
    File "C:\Python27\lib\site-packages\paramiko\sftp_client.py", line 132, in from_transport 
    return cls(chan) 
    File "C:\Python27\lib\site-packages\paramiko\sftp_client.py", line 101, in __init__ 
    raise SSHException('EOF during negotiation') 
paramiko.ssh_exception.SSHException: EOF during negotiation 
>>> 

何が間違っているのまだ手掛かり...

+1

ParamikoはSSHのいくつかの実装では動作しません。実際には、彼らは[FAQ]ページ(http://www.paramiko.org/faq.html)ですぐに述べています。たとえば、ParamikoをCirrOS VMに接続することはできませんでしたが、同じコードはCentOSボックスでうまく機能しました。 – vempo

答えて

0

が、これは、接続した判明SFTPサーバーで問題が発生しました。それを修正したSFTP管理者に連絡したところ、同じコードが正常に動作しました。

0

パスワード認証を使用するプログラムでこの同じエラーが発生しました。 SFTPサーバーのパスワードの有効期限が切れていたためです。それをリセットし、すべてが機能しました。

関連する問題