Öffentliches is_rsa.pub automatisch zu known_hosts hinzufügen – wie geht das?

Öffentliches is_rsa.pub automatisch zu known_hosts hinzufügen – wie geht das?

Wie füge ich den Server automatisch zu known_hosts hinzu? (Und verwende keinen MD5-Fingerabdruck, da ich eine sichere Methode meine. Bitte sende keine „Auto Yes/Accept“-Lösungen. Ich möchte die erforderlichen Anmeldeinformationen vom Server auf die Maschine übertragen.)

Ich möchte meine SSH- known_hostsDatei automatisch aktualisieren, um neue Server zu akzeptieren.

Ich gehe davon aus, dass ich den öffentlichen Schlüssel des Servers hinzufügen muss ( id_rsa.pubüber einen sicheren Kanal erhalten), aber ich sehe, dass das Format anders ist (ich habe versucht, es so hinzuzufügen, awk '{print "server "$1" "$2}' id_rsa.pub > .ssh/known_hostsaber die Überprüfung ist fehlgeschlagen. Bitte beachten Sie, dass ich aufgrund von MD5-Fehlern keinen MD5-Fingerabdruck verwenden möchte). Wenn etwas anderes id_rsa.pubnützlich wäre, kann ich Befehle auf dem Server ausführen und Ergebnisse über einen vertrauenswürdigen Kanal erhalten. (Bitte beachten Sie, dass es sich nicht um einen Netzwerkkanal handelt (denken Sie daran, den USB-Stick physisch von einem Ort zum anderen zu bringen), was ssh-keyscandas Problem also nicht löst. Darüber hinaus ist id_rsa.pub der Schlüssel des Dropbear-Servers, der nicht auf dem Server ausgeführt wird, sodass nur Dateien mit Schlüsseln verfügbar sind, nicht der Server.)

Antwort1

Der Name id_rsa.pubsieht aus wie der öffentliche Schlüssel eines Benutzers. Das hat nichts damit zu tun, dass known_hostsknown_hostsHostschlüssel speichert. Hostschlüssel authentifizieren, wie der Name schon sagt, einen Host (also einen Computer), während Benutzerschlüssel einen Benutzer authentifizieren. Öffentliche Hostschlüssel von OpenSSH befinden sich normalerweise in /etcoder /etc/sshund werden etwa so genannt ssh_host_rsa_key.pub.

Dropbear verfügt über eine einzelne Datei, die den privaten Schlüssel enthält. Um den öffentlichen Schlüssel zu extrahieren (in einem Format, das zwischen Dropbear und OpenSSH kompatibel ist), führen Sie Folgendes aus:

dropbearkey -f /etc/dropbear/dropbear_rsa_host_key -y | sed -n 2p >host_key.pub

Ich glaube nicht, dass OpenSSH einen Befehl zum Aktualisieren der Datei mitbringt known_hosts. Das geht ganz einfach manuell:

echo "$server_name,$server_ip_address $(cat server_ssh_host_rsa_key.pub)" >>~/.ssh/known_hosts

Wenn Sie Hostnamen hashen möchten (sodass jemand, der Ihre known_hostsDatei liest, die Namen dieser Server nicht kennen kann – dies ist ein sehr geringer Datenschutzgewinn), führen Sie es ssh-keygen -Hanschließend aus.

verwandte Informationen