Wodurch kehrt ssh zurück? Das Netzwerk ist ausgefallen.


3

Ich versuche erfolglos, eine Verbindung zu einem lokalen Netzwerk-SSH-Server von MacOS herzustellen, indem ich Folgendes tue:

$ ssh user@1111:ab1:123:ab1:011b:12bc:ab12:1a2b

und dann bekomme ich:

ssh: connect to host 1111:ab1:123:ab1:011b:12bc:ab12:1a2b port 22: Network is down

Ich kann tatsächlich über die iPhone-App Termius eine Verbindung zu diesem Server herstellen (und es gibt auch andere Gründe, warum ich glaube, dass die Serverseite in Ordnung ist), also glaube ich, dass es ein Problem auf der Clientseite gibt. Ich habe die gleiche App unter macOS ohne Erfolg ausprobiert.

Außerdem funktioniert ssh für eine virtuelle Maschine genauso gut wie für einen amazon aws-Server.

Auch ausprobiert wortreich:

$ ssh user@1111:ab1:123:ab1:011b:12bc:ab12:1a2b -vvv
OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 1111:ab1:123:ab1:011b:12bc:ab12:1a2b port 22.
ssh: connect to host 1111:ab1:123:ab1:011b:12bc:ab12:1a2b port 22: Network is down

Und IPV6:

$ ssh -6 -vvv user@1111:ab1:123:ab1:011b:12bc:ab12:1a2b
OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 1111:ab1:123:ab1:011b:12bc:ab12:1a2b port 22.
ssh: connect to host 1111:ab1:123:ab1:011b:12bc:ab12:1a2b port 22: Network is down

Und ping:

$ ping 1111:ab1:123:ab1:011b:12bc:ab12:1a2b
ping: cannot resolve 1111:ab1:123:ab1:011b:12bc:ab12:1a2b: Unknown host

Was könnte die Ursache sein? Network is down? Wie soll ich das debuggen?

Antworten:


2

SSH ist nur der Bote und ruft wahrscheinlich an strerror(3) oder gleichwertig bei einem schlechten Beendigungscode von einem Socket-Aufruf:

$ find /usr/include -name "*.h" -exec grep 'Network is down' {} +
/usr/include/apr-1/apr_errno.h:#define SOCENETDOWN             (SOCBASEERR+50)            /* Network is down */
/usr/include/sys/errno.h:#define        ENETDOWN        50              /* Network is down */
$ 

Stöbern wir in den Systemmanpages für ENETDOWN Dies wird Dokumentation auftauchen ...

$ find /usr/share/man -type f -exec grep -l ENETDOWN {} +
/usr/share/man/man2/connect.2
/usr/share/man/man2/connectx.2
/usr/share/man/man2/intro.2
/usr/share/man/man2/send.2
...

Obwohl nicht so viel connect(2) oder intro(2) nur anzeigen

 [ENETDOWN]         The local network interface is not functioning.
...
 50 ENETDOWN Network is down.  A socket operation encountered a dead net-
         work.

Funktioniert IPv6 auf diesem Host? Sie müssen wahrscheinlich mit debuggen ping6 (nicht ping ) und überprüfen Sie möglicherweise die IPv6-Einstellungen über eine klickende Oberfläche oder stattdessen ifconfig und netstat -rn.

Um die GUI zu umgehen, können die Netzwerkeinstellungen für IPv6 mit so etwas wie angepasst werden

sudo ipconfig set en0 AUTOMATIC-V6

siehe die ipconfig(8) Handbuch für Details.


1
ping6: UDP connect: No route to host
KcFnMi

1
Ich habs. IPV6 war Off im System Preferences & gt; Network & gt; Advanced & gt; TCP/IP. Gewechselt zu auto und gelöst!
KcFnMi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.