Linux / Befehl ssh-copy-id: Installieren Sie einen öffentlichen Schlüssel auf einem entfernten Konto
ssh-copy-id bereitet die Anmeldung mit öffentlichem Schlüssel vor, indem der lokale SSH-öffentliche Schlüssel zum authorized_keys des Remote-Kontos hinzugefügt wird. Es ist kein Befehl, um den privaten Schlüssel auf den Server zu kopieren.
Zuerst müssen Sie in der Lage sein, auf das Zielkonto über die Passwortanmeldung oder eine andere Authentifizierungsmethode zuzugreifen. Durch die Angabe der Datei des öffentlichen Schlüssels, die bei -i registriert werden soll, wird die Wahrscheinlichkeit verringert, unter mehreren lokalen Schlüsseln den falschen auszuwählen. Das Tool versucht eine SSH-Verbindung, um zu überprüfen, ob der Schlüssel bereits registriert ist, und sein Verhalten kann je nach Serverrichtlinien variieren.
Grundlegende Syntax
ssh-copy-id [options] [user@]host
Installierte Implementierungen und Optionen können je nach Distribution variieren. Überprüfen Sie die Beschreibung auf Ihrem aktuellen System mit man ssh-copy-id.
Beispiele
Überprüfung des zu registrierenden öffentlichen Schlüssels
Überprüfen Sie die .pub am Ende der Datei und prüfen Sie den Fingerabdruck.
ssh-keygen -lf ~/.ssh/id_ed25519_work.pub
Vorschau vor der eigentlichen Registrierung
Überprüfen Sie den zu kopierenden Schlüssel in unterstützten Implementierungen. Es werden keine Änderungen am Remote-Server vorgenommen.
ssh-copy-id -n -i ~/.ssh/id_ed25519_work.pub alice@server.example.com
Registrierung des öffentlichen Schlüssels
Nach der Überprüfung des Remote-Host-Schlüssels fügen Sie den öffentlichen Schlüssel zum entsprechenden Konto hinzu.
ssh-copy-id -i ~/.ssh/id_ed25519_work.pub alice@server.example.com
Überprüfen Sie nach der Registrierung des öffentlichen Schlüssels
ssh-copy-id fügt Ihren lokalen öffentlichen Schlüssel der Liste der autorisierten Schlüssel auf dem Remote-Konto hinzu. Sie müssen zunächst eine Verbindung zum Remote-Konto herstellen können und die notwendigen Berechtigungen für dieses Konto haben.
ssh-copy-id -i ~/.ssh/id_ed25519_work.pub user@server.example.test
Ausgabe, die bei erfolgreicher Registrierung erscheinen kann:
Number of key(s) added: 1
Überprüfen Sie nach der Registrierung, ob die tatsächliche öffentliche Schlüsselauthentifizierung mit ssh -i ~/.ssh/id_ed25519_work user@server.example.test funktioniert. Gehen Sie nicht davon aus, dass es sicher ist, die Passwortanmeldung nur aufgrund einer Erfolgsmeldung zu deaktivieren. Sie sollten zuerst andere Administrator-Konten und Notfallzugangsrouten bestätigen.
Hauptoptionen und Format
| Optionen/Format | Beschreibung |
|---|---|
-i public_key_file |
Wählen Sie explizit den öffentlichen Schlüssel zur Registrierung aus. |
-n |
Zeigen Sie die auszuführenden Operationen an, ohne tatsächlich zu registrieren. |
-p port |
Geben Sie den Port des entfernten SSH-Servers an. |
-s |
Verwenden Sie die SFTP-Übertragungsmethode bei unterstützten Implementierungen. |
-f |
Sie können ohne Überprüfung bereits registrierter Schlüssel zwangsweise hinzufügen, achten Sie also auf Doppelungen. |
Vorsichtsmaßnahmen bei der Verwendung
Ignorieren Sie keine Warnungen bezüglich des Host-Schlüssels. Deaktivieren Sie die vorhandene Passwortauthentifizierung nicht, bis Sie überprüft haben, dass Sie sich nach der Registrierung von einem neuen Terminal mit ssh -i ~/.ssh/id_ed25519_work alice@server.example.com anmelden können. Um einen registrierten öffentlichen Schlüssel zu entfernen, sichern Sie die entsprechende Zeile in ~/.ssh/authorized_keys des Remote-Kontos und löschen Sie sie anschließend, wobei andere Schlüssel erhalten bleiben.
Häufig gestellte Fragen
Warum wird nach einem Passwort gefragt, selbst nachdem ssh-copy-id ausgeführt wurde?
Während der ersten Registrierung kann eine vorhandene Authentifizierung erforderlich sein. Wenn weiterhin nach einem Passwort gefragt wird, überprüfen Sie den ausgewählten privaten Schlüssel, die Berechtigungen der authorized_keys des Servers und die SSH-Servereinstellungen.
Offizielle Dokumentation
Sie können das genaue Verhalten der Optionen und Implementierungsunterschiede in der offiziellen ssh-copy-id-Dokumentation nachprüfen.




