ssh-copy-id hinterlegt den eigenen öffentlichen SSH-Schlüssel bequem auf einem entfernten Server. Das Kommando hängt den Schlüssel in die Datei ~/.ssh/authorized_keys des Zielbenutzers an — damit ist die SSH-Key-Authentifizierung eingerichtet und der Login funktioniert ohne Passwort.

Grundbefehl

ssh-copy-id Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.

Der Befehl verbindet sich zunächst per Passwort (oder vorhandenem Schlüssel) mit dem Server und kopiert dann alle öffentlichen Schlüssel, die im SSH-Agent oder in den Standarddateien (~/.ssh/id_rsa.pub, id_ed25519.pub, …) liegen. Beim ersten Mal fragt ssh-copy-id nach dem Passwort des Benutzers auf dem Server; danach klappt die Anmeldung schlüsselbasiert.

Bestimmten Schlüssel kopieren

ssh-copy-id -i ~/.ssh/id_ed25519.pub Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.

Die Option -i gibt explizit an, welcher öffentliche Schlüssel kopiert werden soll. Das ist sinnvoll, wenn mehrere Schlüssel existieren oder der Agent viele Schlüssel enthält — so wird nur der gewünschte hinterlegt. Die Endung .pub ist wichtig: Der private Schlüssel darf niemals auf den Server gelangen.

Praxis-Tipps

  • Nur den öffentlichen Schlüssel (.pub) kopieren — der private bleibt lokal. Das Schlüsselpaar wird zuvor mit ssh-keygen erzeugt.
  • Nach dem Login-Test ohne Passwort optional den Passwort-Login auf dem Server deaktivieren (in /etc/ssh/sshd_config: PasswordAuthentication no) — das erhöht die Sicherheit deutlich.
  • Passt die Datei authorized_keys nicht zum Zielbenutzer, hilft ein Blick auf Berechtigungen: ~/.ssh = 700, authorized_keys = 600.
  • Bei mehreren Servern nacheinander ausführen — oder die Konfiguration mit ssh-config abkürzen.

Verwandte Grundlagen: SSH und ssh, scp und rsync: Remote-Verbindungen und Datei-Transfer.