SSH-Schlüssel

Einen SSH-Schlüssel unter macOS, Linux oder Windows erzeugen, den öffentlichen Teil in die Konsole kopieren und Berechtigungsfehler beheben.

Eine Maschine nimmt den öffentlichen Teil Ihres Schlüssels an. Der private Teil bleibt auf Ihrem Computer und verlässt ihn nie.

Vorhandenen Schlüssel prüfen

ls ~/.ssh/*.pub

Eine Datei wie id_ed25519.pub bedeutet, dass Sie einen Schlüssel haben. Weiter mit Öffentlichen Schlüssel kopieren.

Schlüssel erzeugen

macOS und Linux

Öffnen Sie das Terminal:

ssh-keygen -t ed25519 -C "you@laptop"

Drücken Sie die Eingabetaste, um den Standardpfad (~/.ssh/id_ed25519) zu übernehmen. Vergeben Sie eine Passphrase: Sie schützt den Schlüssel, wenn Ihr Computer verloren geht.

Windows 10 und 11

OpenSSH ist in Windows enthalten. Öffnen Sie PowerShell:

ssh-keygen -t ed25519 -C "you@laptop"

Der Schlüssel wird unter C:\Users\<you>\.ssh\id_ed25519 gespeichert. Wird ssh-keygen nicht gefunden, öffnen Sie Einstellungen, System, Optionale Features und fügen Sie OpenSSH-Client hinzu.

Öffentlichen Schlüssel kopieren

Kopieren Sie die einzelne Zeile der .pub-Datei und fügen Sie sie in das Startformular ein.

System Befehl
macOS pbcopy < ~/.ssh/id_ed25519.pub
Linux cat ~/.ssh/id_ed25519.pub
Windows Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard

Die Zeile beginnt mit ssh-ed25519, ecdsa-sha2-nistp256 oder ssh-rsa. Ein Block, der mit -----BEGIN beginnt, ist der private Schlüssel: Fügen Sie ihn nirgendwo ein.

Schlüssel für Skripte und Agenten

Eine mit einem API-Schlüssel gestartete Sitzung erhält den öffentlichen Schlüssel, der mit dem Start gesendet wird. Dieser Schlüssel öffnet nur diese Sitzung und wird nicht in Ihrem Konto gespeichert. Die CLI, die SDKs, der MCP-Server und die GitHub Action senden ihn für Sie.

Ein API-Schlüssel mit dem Scope workloads:read listet die in der Konsole gespeicherten Schlüssel, und ein Start kann einen davon angeben. Schlüssel speichern oder aus Ihrem Konto entfernen Sie in der Konsole.

Mit diesem Schlüssel verbinden

ssh -i ~/.ssh/id_ed25519 ubuntu@203.0.113.42

Unter Windows:

ssh -i $env:USERPROFILE\.ssh\id_ed25519 ubuntu@203.0.113.42

Um -i nicht jedes Mal anzugeben, ergänzen Sie einen Eintrag in ~/.ssh/config:

Host nodelodge-*
  User ubuntu
  IdentityFile ~/.ssh/id_ed25519

Schlüssel einmal pro Sitzung laden

Mit Passphrase fragt der Agent sie nur einmal ab:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Unter Windows starten Sie den Agent-Dienst einmalig aus einer Administrator-PowerShell und fügen dann den Schlüssel hinzu:

Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519

Berechtigungsfehler beheben

UNPROTECTED PRIVATE KEY FILE oder bad permissions

SSH lehnt einen privaten Schlüssel ab, den andere Konten lesen können.

macOS und Linux:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519

Windows:

icacls $env:USERPROFILE\.ssh\id_ed25519 /inheritance:r /grant:r "$($env:USERNAME):(R)"

Permission denied (publickey)

  • Der eingefügte Schlüssel ist nicht der, den SSH anbietet. Übergeben Sie ihn mit -i.
  • Verbinden Sie sich als ubuntu, nicht als root.
  • Ein Schlüssel mit einem Zeilenumbruch darin passt nicht. Kopieren Sie ihn erneut mit dem Befehl oben.

Weitere Verbindungsfehler: Verbindung per SSH.

Zuletzt aktualisiert

Ergebnisse erscheinen beim Tippen. Mit den Pfeiltasten wechseln Sie zwischen ihnen.