2012-03-01 11 views
7

Używam Paramiko i próbuję połączyć się z moim serwerem SFTP. Oto kod, który napisałem:paramiko.SSHException: błąd podczas czytania sztandaru protokołu SSH

class SFTPUploader: 
    def __init__(self, host, username, password, port): 
     transport = paramiko.Transport((host, port)) 
     print transport 
     transport.connect(username = username, password = password) 
     self.sftp = paramiko.SFTPClient.from_transport(transport) 

Mogę połączyć się z serwerem z terminala. This thread nie pomogło, ponieważ nasz scenariusz jest inny.

Odpowiedz

7

Ten błąd jest generowany, gdy paramiko nie otrzymuje banera protokołu lub serwer wysyła coś nieważnego. Jeśli serwer działa poprawnie, może to wynikać z pewnych ograniczeń sieci.

Możesz użyć -vvv jako opcji do klienta openssh, aby uzyskać więcej informacji o tym, jak się łączy, i możesz uzyskać faktyczny baner łatwo za pomocą netcat lub telnet na porcie 22. Baner powinien zaczynać się od "SSH-", lub paramiko zwróci powyższy błąd natychmiast.