SSH hängt beim Stoppen eines Remote-Systems

711
divB

Ich habe erfolgreich verwendet

ssh -q -i pubkey root@192.168.200.122 'halt' 

seit Jahren ein FreeBSD-System (FreeNAS) von einer Linux-Box aus zu stoppen.

Plötzlich funktionierte das aus dem Nichts: ssh hängt mit diesem Befehl für immer. Da dies in einem Backup-Skript verwendet wird, ist dies ein Desaster.

Was könnte passiert sein, dass dies plötzlich passiert? Ist das Problem eher auf der Serverseite (FreeBSD) oder auf dem Client (Linux)? Wie kann ich es beheben (auf der Clientseite)?

0
Was hat sich auf der Server- / Client-Seite geändert, wenn es nicht mehr funktioniert? mpy vor 9 Jahren 0
Nichts was ich weiß ;-) Ansonsten hätte ich es umgedreht und versucht ... divB vor 9 Jahren 0
Versuchen Sie, `ssh` ohne die` -q`-Flagge auszuführen. Roland Smith vor 9 Jahren 0

2 Antworten auf die Frage

0
ben

Haben Sie versucht, manuell in die ssh zu gehen?

ssh -i pubkey root@192.168.200.122 

Meine einzige Vermutung ist, aus welchem ​​Grund auch immer die known_hosts des Kunden geändert, gelöscht wurden usw. Oder der Eintrag darin stimmt nicht mehr überein, was möglich ist. Wenn openssl auf der Serverseite geändert (aktualisiert) wurde, stimmt der Eintrag known_hosts nicht überein.

Wenn Sie also ssh auch mit einem Pubkey verwenden, erhalten Sie dies, wenn die known_hosts nicht existieren:

Die Authentizität des Hosts '192.168.200.122 (192.168.200.122)' kann nicht festgestellt werden. Der RSA-Schlüsselfingerabdruck ist fa: 7c: 54: 45: 70: c2: 70: f9: f2: 3c: c9: 75: 4d: 83: 10: 5b. Möchten Sie die Verbindung fortsetzen (Ja / Nein)?

Und es wartet darauf, dass Sie akzeptieren

Oder Sie bekommen das, wenn es nicht passt

Test: ~ / .ssh # ssh 192.168.200.122@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@ @@ WARNUNG: Die IDENTIFIZIERUNG DES REMOTE HOST HAT GEÄNDERT! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ ES IST MÖGLICH, DASS JEMAND ETWAS ETWAS TUT! Jemand könnte dich gerade belauschen (Man-in-the-Middle-Angriff)! Es ist auch möglich, dass der RSA-Hostschlüssel gerade geändert wurde. Der Fingerabdruck für den vom entfernten Host gesendeten RSA-Schlüssel lautet fa: 7c: 54: 45: 70: c2: 70: f9: f2: 3c: c9: 75: 4d: 83: 10: 5b. Bitte kontaktieren Sie Ihren Systemadministrator. Fügen Sie den korrekten Host-Schlüssel in /root/.ssh/known_hosts hinzu, um diese Nachricht zu löschen. Der fehlerhafte Schlüssel in /root/.ssh/known_hosts:1 Der RSA-Hostschlüssel für 192.168.200.122 wurde geändert und Sie haben eine strikte Überprüfung angefordert. Hostschlüsselüberprüfung fehlgeschlagen test: ~ / .ssh #

Versuchen Sie es also manuell. Wenn es nicht existiert, müssen Sie es akzeptieren, und der Eintrag known_hosts wird erstellt. Wenn Sie ssh das nächste Mal verwenden, sollte dies in Ordnung sein

Wenn dies nicht der Fall ist, bearbeiten Sie Ihre ~ / .ssh / known_hosts und löschen Sie den Eintrag für diesen Host. Wenn Sie dann manuell erneut ssh eingeben, akzeptieren Sie es und erstellen Sie den Eintrag known_hosts neu.

Das einzige, was mir aus dem Kopf fällt. Hoffe das ist es!

Leider nicht. Es passiert auch, wenn ich es manuell mache. Ich kann die SSH-Sitzung auch nicht mit STRG + C beenden. Ich kann in meiner Bildschirmsitzung nur STRG + K verwenden, um das vollständige Fenster zu beenden. Und Login etc. ist definitiv erfolgreich. Ich kann den Befehl 'halt' erfolgreich ausgeben. Es scheint also, dass die Maschine tatsächlich angehalten ist (ich kann das nicht wirklich überprüfen, da es sich um eine Remote-Box handelt), aber es gibt kein Timeout für SSH oder so ... divB vor 9 Jahren 0
Die Maschine wird angehalten, aber Sie möchten, dass Ihre SSH-Sitzung beendet wird? Das ist interessant. Ich würde denken, dass die ganze Zeit das tun könnte. Bist du okay mit dem Laufen im Hintergrund? Vielleicht missverstehe ich das Problem. Der Befehl, den Sie ausführen, lautet also "halt &"? ben vor 9 Jahren 0
Ich möchte das System einfach per SSH anhalten, ja. (und es hat immer so funktioniert). Sicher, im Hintergrund zu laufen wäre fündig, aber '&' hilft nicht, denke ich, weil es sowieso einen HUP erhält. divB vor 9 Jahren 0
0
Roland Smith

Überprüfen Sie Ihre SSH-Client-Konfiguration. TCPKeepAlivesollte nicht nofür den Client festgelegt werden.