OS X: SSH über Shadowsocks-Fehler: "ssh_exchange_identification: Verbindung von Remote-Host geschlossen"

547
toom

Ich bin in China und SSH-Verbindungen werden durch die chinesische Große Firewall verlangsamt. Es ist oft so schlimm, dass die Verwendung von ssh einfach nicht möglich ist. Daher muss ich meinen SSH-Verkehr durch Shadowsocks tunneln, damit er von der CGF nicht erkannt werden kann. Deshalb habe ich meiner ~/.ssh/configDatei folgende Zeilen hinzugefügt :

$cat ~/.ssh/config Host ssserver User ubuntu IdentityFile ~/.ssh/id_rsa ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p 

Beim Ausführen ssh -v ssservererhalte ich folgende Fehlermeldung:

$ ssh -v ssserver OpenSSH_7.6p1, LibreSSL 2.6.2 debug1: Reading configuration data /Users/Tom/.ssh/config debug1: /Users/Tom/.ssh/config line 6: Applying options for ssserver debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 20: Applying options for * debug1: /etc/ssh/ssh_config line 102: Applying options for * debug1: Executing proxy command: exec nc -X 5 -x 127.0.0.1:1080 ssserver 22 debug1: identity file /Users/Tom/.ssh/id_rsa type 0 debug1: key_load_public: No such file or directory debug1: identity file /Users/Tom/.ssh/id_rsa-cert type -1 debug1: Local version string SSH-2.0-OpenSSH_7.6 debug1: permanently_drop_suid: 501 ssh_exchange_identification: Connection closed by remote host 

Ich bin leider kein SSH-Experte. Weiß jemand, was das bedeutet und wie man das reparieren kann. Das würde mir wirklich sehr helfen. Vielen Dank.

0

1 Antwort auf die Frage

0
toom

Ich habe herausgefunden, wie das Problem behoben werden kann. Es bleibt mir jedoch eine neue Frage.

Zuerst die Lösung: Durch Zufall habe ich herausgefunden, dass das Ersetzen des Hostnamens von /etc/hostsnämlich ssserverdurch seine IP-Adresse funktioniert. Also habe ich den Eintrag in der ~/.ssh/configvon oben in geändert :

$cat ~/.ssh/config Host 64.10.18.222 User ubuntu IdentityFile ~/.ssh/id_rsa ProxyCommand nc -x 127.0.0.1:1080 %h %p 

Jetzt muss ich auf der Konsole einfach anrufen ssh -v 64.10.18.222und es funktioniert.

Alternativ lautet der vollständige Konsolenbefehl:

ssh -v -i ~/.ssh/your_id_key_file_rsa -o ProxyCommand='nc -x 127.0.0.1:1080 %h %p' ubuntu@64.10.18.222 

Also meine neue Frage: Warum funktioniert die IP-Adresse, während der als Hostname verwendete Host /etc/hostsfehlschlägt?