GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Öffentlichen Schlüssel zur Datei known_hosts hinzufügen

So habe ich es gemacht.

  1. Generieren Sie einen Schlüssel auf dem Hostserver. Verwenden Sie den folgenden Befehl.

*ssh-keyscan -t rsa vollständiger Servername

  1. 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


Linux
  1. Ein kleiner SSH-Dateikopierzauber auf der Kommandozeile

  2. Ssh – Passwörter an ein Skript übergeben?

  3. Ssh akzeptiert keinen öffentlichen Schlüssel?

  4. So verschlüsseln Sie eine große Datei in openssl mit einem öffentlichen Schlüssel

  5. Wie höre ich auf, IP von EC2 zu known_hosts für ssh hinzuzufügen?

Wie richte ich die ssh-schlüsselbasierte Authentifizierung für Github mithilfe der Datei ~/.ssh/config ein?

So fügen Sie dem Server einen öffentlichen SSH-Schlüssel hinzu

So fügen Sie einen SSH-Schlüssel für den cPanel-SSH-Zugriff hinzu

Wie füge ich meinen SSH-Schlüssel zu Github/Bitbucket hinzu?

So fügen Sie dem VS-Code einen SSH-Schlüssel hinzu und stellen eine Verbindung zu einem Host her

So konvertieren Sie den privaten Schlüssel von PuTTY (.ppk) in einen SSH-Schlüssel