So habe ich es gemacht.
- Generieren Sie einen Schlüssel auf dem Hostserver. Verwenden Sie den folgenden Befehl.
*ssh-keyscan -t rsa vollständiger Servername
- Kopieren Sie nun den hervorgehobenen Abschnitt (im Bild) und hängen Sie diesen Schlüssel an die Datei „known_host“ auf dem Quellserver an. Natürlich kann der Speicherort dieser Datei für verschiedene Umgebungen unterschiedlich sein.
Ich habe vor einigen Tagen auf SuperUser eine fast ähnliche Antwort gegeben. Die wichtigen Teile:
- Das Format ist unterschiedlich
- Auf jedem Server gibt es unterschiedliche Hostschlüssel (Typen) (stellen Sie sicher, dass Sie den tatsächlich verwendeten einfügen)
- Da ist
ssh-keyscan
die das Format für Sie erstellen kann
Andernfalls stellen Sie Ihrem Schlüssel einfach die Server-IP-Adresse voran (Sie können auch den Hostnamen nach dem Komma hinzufügen), entfernen Sie den Kommentar vom Ende der Zeile und alles ist in Ordnung. Format sieht dann so aus:
11.22.33.44 ssh-rsa AADGD...
Und noch eine Anmerkung, wenn Sie HashKnownHosts yes
verwenden (Debian und Ubuntu tun dies), Sie müssen Ihre known_hosts
erneut hashen wie:
ssh-keygen -Hf ~/.ssh/known_hosts
Da ich gerade auf dieses Problem gestoßen bin, habe ich es folgendermaßen angegangen:
Im Laufe der Zeit kopieren Sie die Dateien mechanisch über
ssh-keyscan server-name >> ~/.ssh/known_hosts
gab mir doppelte Einträge in .ssh/known_hosts.
Bei anderen manuellen Methoden musste ich den .ssh
erstellen Verzeichnis existierte noch nicht usw.
Ich entschied mich für ssh
damit umgehen:
ssh -o StrictHostKeyChecking=no server-name ls
Die -o StrictHostKeyChecking=no
Option antwortet automatisch mit 'Ja' auf die
The authenticity of host 'server-name (12.345.678.900)' can't be established.
RSA key fingerprint is XXXXXXX.
Are you sure you want to continue connecting (yes/no)?
Nachricht (fügen Sie hier alle Sicherheitsvorkehrungen ein, um sich zufällig mit Computern zu verbinden, die Sie nicht kennen).
Die ls
command ist nur ein Fluff-Befehl, der ausgeführt wird und SSH dazu zwingt, die Verbindung zu trennen, wenn er fertig ist. Sie können es in einen beliebigen Flusenbefehl ändern, den Sie möchten.
ssh kümmert sich um die Erstellung von .ssh
dir (falls erforderlich), nur eine Kopie des Schlüssels hinzufügen usw.
Plattform:macOS 10.14