Frage In Bezug auf "Überprüfung des Hostschlüssels fehlgeschlagen"


Ich benutze Ubuntu 10.04 in 2 virtuellen Maschinen. In einer Maschine habe ich Hudson installiert und eine andere Maschine soll klocwork laufen lassen. Szenario ist, wenn ich einen Build in Hudson trigge, muss das Skript erfolgreich ausgeführt werden und das Klocwork in VM2 aufrufen. Im Build-Skript habe ich den folgenden Befehl gegeben, um Klocwork in Maschine 2 aufzurufen.

if [ $Klocwork = "true" ]; then
echo "Starting Klocwork Report ..."
sshpass -p 'password' ssh IP-address "sudo chmod 755 /local path/build_script_kw.sh;/local path/build_script_kw.sh $SVNID $Version"
fi
echo "Build Successfully."

Wenn ich das Skript ausführe, bekomme ich Host key verification failed Error. Bitte geben Sie mir eine Lösung für dieses Problem. Vielen Dank.


1
2017-08-27 05:09


Ursprung


Ich habe hier einige Informationen zu dieser Fehlermeldung gefunden: askubuntu.com/questions/45679/ ... Kurz gesagt: Ihr Serverschlüssel wurde geändert (?) - Rinzwind
Könnten Sie mir bitte sagen, wie Sie die Schlüsselinformationen überprüfen können? - bsreeram031187


Antworten:


Sie können die Überprüfung des Host-Schlüssels mit dem folgenden Befehl überspringen.

sshpass -p '<your_password>' ssh <your_server_ip> -o StrictHostKeyChecking=no

Beachten Sie, dass der obige Befehl Ihr Problem löst, wenn der Schlüssel nicht vorhanden ist /root/.ssh/known_host Datei, aber wenn ein älterer Schlüssel vorhanden ist, müssen Sie diesen zuerst entfernen, indem Sie dem Befehl folgen

ssh-keygen -R hostname

6
2018-02-07 05:16





Wenn Sie das erste Mal eine Verbindung zu einem anderen System herstellen, wird Ihnen ein Fingerabdruck des Verschlüsselungsschlüssels des Remote-Systems angezeigt (falls Sie sich paranoid fühlen, können Sie dies offline überprüfen).

Auf dem Remote-System der Befehl ssh-keygen -lf /etc/ssh/ssh_host_rsa_key zeigt den Fingerabdruck an, der beim ersten Verbindungsaufbau angezeigt werden soll.

Wenn Sie bestätigen, dass dies der erwartete Fingerabdruck ist, wird er in der Datei gespeichert $HOME/.ssh/known_hosts zusammen mit dem Namen des Remote-Systems, so dass, wenn Sie versuchen, erneut zu verbinden und finden Sie den Schlüssel geändert wird Sie gewarnt, dass das Remote-System geändert wurde, oder Ihre Kommunikation abgefangen werden (unwahrscheinlich, aber immer noch ...).

In diesem Fall haben Sie möglicherweise das Remote-System neu installiert (es hat also einen neuen SSH-Schlüssel mit dem gleichen Namen) und Sie werden daher gewarnt, dass es sich geändert hat.

Um dies zu korrigieren, müssen Sie den vorhandenen Eintrag aus dem entfernen known_hosts Datei. Wenn es Ihnen nichts ausmacht, erneut aufgefordert zu werden, die Identität anderer Rechner zu bestätigen, mit denen Sie sich verbinden, können Sie einfach löschen known_hosts und es wird neu erstellt, wenn Sie das nächste Mal SSH verwenden. Alternativ können Sie die ssh-keygen Befehl, um den fehlerhaften Schlüssel zu löschen ssh-keygen -R HOSTNAME (woher HOSTNAME ist der Name der Remote-Maschine).


1
2017-08-27 09:08



nach dem Löschen muss ich den ssh ?????? - bsreeram031187
Nach dem Löschen von known_hosts werden Sie beim nächsten Verbinden mit dem Remote-Computer aufgefordert, zu bestätigen, dass der Fingerabdruck wie erwartet ist (wie beim ersten Verbindungsaufbau mit einem neuen System). Verbinden Sie sich also einmal manuell damit, danach sollte das Skript korrekt funktionieren. - chronitis