Lösung 1:
IMO, der beste Weg, dies zu tun, ist der folgende:
ssh-keygen -R [hostname]
ssh-keygen -R [ip_address]
ssh-keygen -R [hostname],[ip_address]
ssh-keyscan -H [hostname],[ip_address] >> ~/.ssh/known_hosts
ssh-keyscan -H [ip_address] >> ~/.ssh/known_hosts
ssh-keyscan -H [hostname] >> ~/.ssh/known_hosts
Dadurch wird sichergestellt, dass es keine doppelten Einträge gibt, dass sowohl der Hostname als auch die IP-Adresse abgedeckt sind, und außerdem wird die Ausgabe gehasht, eine zusätzliche Sicherheitsmaßnahme.
Lösung 2:
Stellen Sie StrictHostKeyChecking
ein Option zu no
, entweder in der Konfigurationsdatei oder über -o
:
ssh -o StrictHostKeyChecking=no [email protected]
Lösung 3:
Für die Faulen:
ssh-keyscan -H <host> >> ~/.ssh/known_hosts
-H hasht den Hostnamen / die IP-Adresse
Lösung 4:
Wie bereits erwähnt, wäre die Verwendung von Key-Scan der richtige und unauffällige Weg, dies zu tun.
ssh-keyscan -t rsa,dsa HOST 2>&1 | sort -u - ~/.ssh/known_hosts > ~/.ssh/tmp_hosts
mv ~/.ssh/tmp_hosts ~/.ssh/known_hosts
Das oben Genannte reicht aus, um einen Host hinzuzufügen, NUR wenn er noch nicht hinzugefügt wurde. Es ist auch nicht parallelitätssicher; Sie darf nicht Führen Sie das Snippet mehr als einmal gleichzeitig auf demselben Ursprungscomputer aus, da die Datei tmp_hosts beschädigt werden kann, was letztendlich dazu führt, dass die Datei known_hosts aufgebläht wird ...
Lösung 5:
Sie könnten ssh-keyscan
verwenden Befehl, um den öffentlichen Schlüssel zu holen und an Ihren known_hosts
anzuhängen Datei.