Ich benutze Pysftp, um einige Dateien herunterzuladen und hochzuladen. Dieser genau gleiche Code, den ich gerade eine Stunde vorher laufen ließ und in Ordnung war, aber jetzt bekam ich diesen "EOF während der Verhandlung" -Fehler. Was fehlt mir hier?Python pysft/paramiko 'EOF während der Verhandlung' Fehler
>>> 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: Aktiviert loggin für paramiko.transport und bekam die folgende:
>>> 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
>>>
Noch immer keine Ahnung von dem, was falsch ist ...
Es stellt sich heraus, dass Paramiko mit einigen Implementierungen von SSH nicht funktioniert. Tatsächlich geben sie es auf ihrer [FAQ-Seite] (http://www.paramiko.org/faq.html) direkt an. Zum Beispiel konnte ich Paramiko nicht mit einer CirrOS-VM verbinden, während der gleiche Code mit einer CentOS-Box funktionierte. – vempo