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 alsroot. - Ein Schlüssel mit einem Zeilenumbruch darin passt nicht. Kopieren Sie ihn erneut mit dem Befehl oben.
Weitere Verbindungsfehler: Verbindung per SSH.