it-swarm.com.de

Git sagt "Warnung: dauerhaft zur Liste der bekannten Hosts hinzugefügt"

Jedes Mal, wenn ich git für die Interaktion mit einer Fernbedienung verwende, z. B. beim Ziehen oder Drücken, wird die folgende Meldung angezeigt:

Warnung: Das '...' (RSA) wurde dauerhaft zur Liste der bekannten Hosts hinzugefügt.

Wie kann ich verhindern, dass diese nervige Nachricht angezeigt wird? Es ist nur ein Ärgernis - alles funktioniert einwandfrei.

171
Donald Taylor

Lösung: Erstellen Sie eine ~/.ssh/config-Datei und fügen Sie die Zeile ein:

UserKnownHostsFile ~/.ssh/known_hosts

Die Nachricht wird dann beim nächsten Zugriff auf Github angezeigt. Danach wird sie jedoch nicht mehr angezeigt, da der Host der known_hosts-Datei hinzugefügt wird. Dadurch wird das Problem behoben, anstatt nur die Protokollmeldung auszublenden.

Dieses Problem hat mich lange Zeit gestört. Das Problem tritt auf, weil der für Windows kompilierte OpenSSH-Client die Datei known_hosts in ~/.ssh/known_hosts nicht überprüft.

ssh -vvvvvvvvvvvvvvvvvv [email protected]

debug3: check_Host_in_hostfile: filename /dev/null
debug3: check_Host_in_hostfile: filename /etc/ssh/ssh_known_hosts
debug3: check_Host_in_hostfile: filename /dev/null
debug3: check_Host_in_hostfile: filename /etc/ssh/ssh_known_hosts
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.
214
Jeremiah Gowdy

Fügen Sie Ihrer ssh-Konfigurationsdatei ($ HOME/.ssh/config) die folgende Zeile hinzu:

LogLevel=quiet

Wenn Sie ssh von der Befehlszeile aus ausführen, fügen Sie der Befehlszeichenfolge die folgende Option hinzu:

-o LogLevel=quiet

Im folgenden Beispiel wird die auf machine.example.org installierte gcc-Version (und keine Warnung) gedruckt:

ssh -o UserKnownHostsFile=/dev/null \
    -o StrictHostKeyChecking=no \
    -o LogLevel=quiet \
    -i identity_file \
    machine.example.org \
    gcc -dumpversion
85
Kyle Kloepper

Setzen Sie LogLevel in ~/.ssh/config-Datei auf ERROR (nicht QUIET), um diese Fehler zu vermeiden:

Host *
   StrictHostKeyChecking no
   UserKnownHostsFile /dev/null
   LogLevel ERROR
53
user1193229

Diese Nachricht stammt von SSH, die Sie warnt, dass Sie sich mit einem Host verbinden, mit dem Sie noch nie verbunden waren. Ich würde nicht empfehlen, die Funktion auszuschalten, da dies bedeuten könnte, dass Sie eine Warnung verpassen, dass sich ein Host-Schlüssel ändert. Dies kann auf einen MITM-Angriff in Ihrer SSH-Sitzung hindeuten.

3
Jason Carreiro

Um Warnmeldungen für ssh zu unterdrücken, können Sie ~/.ssh/config die folgenden Zeilen hinzufügen:

Host *
LogLevel error

Dadurch werden Warnungen deaktiviert, jedoch keine Fehlermeldungen. Wie die anderen Einstellungen in ~/.ssh/config können Sie die LogLevel für jeden Host einzeln konfigurieren, wenn Sie eine feinere Kontrolle wünschen.

3
Stefan Schmidt

Dies bedeutet hauptsächlich, dass der Schlüssel für diesen Host ~/.ssh/known_hosts geändert wurde und er nicht automatisch aktualisiert wird. Deshalb erhalten Sie jedes Mal diese Warnmeldung.

Dies geschieht häufig für die Verbindung zu den neu erstellten virtuellen Maschinen, wodurch der Schlüssel mit derselben IP-Adresse geändert wird

Lösung

Wenn Sie nur einen Eintrag haben, können Sie die ~/.ssh/known_hosts-Datei löschen. Nach der ersten Verbindung wird der Schlüssel dort angezeigt und es werden keine Warnmeldungen angezeigt.

Wenn Sie mehrere Einträge haben, können Sie den folgenden Befehl zum Entfernen verwenden 

$ ssh-keygen -R <hostname>

Es funktioniert gut für mich

2
Larry Cai

Fügen Sie den SSH-Schlüssel hinzu 

ssh-keygen -t rsa -b 4096 -C "[email protected]"

eval "$(ssh-agent -s)"

ssh-add ~/.ssh/bitbucket_rsa

kisten-Konfigurationsdatei 

crate ~/.ssh/config

füge unter der Zeile hinzu.

UserKnownHostsFile ~/.ssh/known_hosts

Fügen Sie dann den pub-Schlüssel hinzu und klonen Sie Ihr Repository ... Fertig .....

0
Thanuja

In Linux/Cent-Betriebssystemen VM war ich mit dem gleichen Fehler konfrontiert worden, weil sich die IP nach dem Neustart geändert hatte. Um dieses Problem zu umgehen, habe ich eine statische IP-Adresse im Netzwerk definiert und diesen Eintrag zur Datei/etc/hosts hinzugefügt. Erwähnen Sie für statische IP einen etwas höheren Bereichswert. Wenn Ihre aktuelle IP-Adresse (ipconfig/ifconfig) beispielsweise 192.168.0.102 lautet, kann dies beim nächsten Neustart möglicherweise 192.168.0.103 werden. Definieren Sie Ihre statische IP-Adresse in den IPV4-Einstellungen als 192.168.0.181, was den Trick ausführen sollte.

0
Vignesh Menon

Ich habe die gleiche Frage und habe festgestellt, dass sich in meinem .ssh keine ~-Datei befindet. Also erstelle ich das Verzeichnis .ssh unter dem Pfad ~ und das Problem ist gelöst.

0
Kris Roofe

Ich bin auf das gleiche Problem gestoßen, als ich anfing, einen Windows-Computer zu verwenden. In meinem Fall war es, weil mein SSH-Setup nicht durchgeführt wurde. Github verfügt über eine sehr genaue Dokumentation des SSH-Setups. Sobald dies erledigt ist, wurde das Problem gelöst.

https://help.github.com/articles/checking-for-existing-ssh-keys/https://help.github.com/articles/generating-a-new-ssh -key-and-add-it-to-the-ssh-agent/

0
Narita

In meinem Fall, weil der Administrator, der den Server eingerichtet hat, diese Optionen in ~/.ssh/config festgelegt hat.

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

Was in den meisten Fällen gut funktionierte, wenn die Datei ~/.ssh/known_hosts nicht verwendet wurde. Aber für das Enterprise-Gitlab-Repo, jedes Mal gab es die "Warnung: Permanent hinzugefügt ... auf die Liste der bekannten Hosts."

Meine Lösung bestand darin, die Zeile UserKnownHostsFile /dev/null auszukommentieren, die die Erstellung von ~/.ssh/known_hosts ermöglichte. Danach gab es keine Warnungen mehr.

Möglicherweise enthält Ihr known_hosts auch alte/ungültige Einträge.

# find entry in ~/.ssh/known_hosts
ssh-keygen -F <hostname>

# delete entry in ~/.ssh/known_hosts
ssh-keygen -R <hostname>
0
wisbucky

Wenn Sie ein Repository von GitHub verwenden, sollten Sie stattdessen die VersionHTTPSder URL verwenden, um dieses Problem vollständig zu umgehen:

Click the HTTP button and clone that URL instead

Wenn Sie Ihr Repository aus der Windows-GitHub-Anwendung heraus klonen, wird dies für die Remote-URL verwendet. Vielleicht wissen sie etwas, was wir nicht wissen.

0
Ricket