So erstellt man ein Schlüsselpaar für SSH-Verbindungen.
Falls ein Ed25519 Schlüsselpaar erstellt und genutzt werden kann, sollte man das einsetzen („-t ed25519“ in aktuellem ssh-keygen).
Ansonsten sind RSA Keys Standard, 4096 Bit sind derzeit eine sinnvolle Bitlänge.
Die Beispiele hier verwenden „ssh-keygen“ aus openssh (z.B. Linux, Mac).
Unter Windows kann man das Tool verwenden, das der verwendete SSH-Client dabei hat.
Das Schlüsselpaar wird am Client erstellt. Auf dem Ziel-Server wird dann der öfftl. Teil des erstellten Schlüssels hinterlegt, der private Teil bleibt immer auf dem Client.
RSA Schlüsselpaar erstellen
RSA Key mit 4096 Bit, Dateiname „neuer_rsa_key“ und Kommentar zum Schlüssel erstellen:
ssh-keygen -t rsa -b 4096 -C "Mein neuer RSA Key" -f neuer_rsa_key
Man wird nach einem optionalen Kennwort gefragt. Für Logins mit SSH-Client macht es Sinn, ein ausreichend starkes Kennwort anzugeben – nach dem fragt der SSH-Client dann beim Login.
Für automatisierte Logins und bestimmte Anwendungsfälle ist ggf. ein kennwortloser Schlüssel ausreichend.
Mit der „-N“ Option kann man auch auf der Kommandozeile ein Kennwort angeben; mit -N “ ein leeres Kennwort.
Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in neuer_rsa_key. Your public key has been saved in neuer_rsa_key.pub. The key fingerprint is: SHA256:PQyeXlnW0LoWNFeMbHzcK0Nd94WKmJ8/Izr1wcCHMUA Mein neuer RSA Key The key's randomart image is: +---[RSA 4096]----+ | o=.=oo | | E+=.=.+| | .+.O++ =| | .o=++B....| | S.*+ *. | | o . .=.. o | | E .. o o . | | .= o + | | .o o . | +----[SHA256]-----+
Dadurch werden zwei Dateien angelegt:
neuer_rsa_key mit dem privaten Key, der nie an jemanden raus gegeben wird:
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-128-CBC,E3B68F5D6500575EBFCE8D3AD730DD62 Ew78HQGU0v9/A/JtOdfaontL5agmg1Fvv1bNKULaFoAKUxoW6KgVQSrA8m0bEDhr y4I5/iwEjtQKoNjT/vKraLHP6xJnvoAkLLVJ1TbuS70JMtyQhso1TONkfWLm8MrF 7nVxCpU4SO6zph/Hi/neMiaLsukY0SuPb7n914OAcDQCbxAnBcEoo614m7uh3Pbu TXz5CF7XTTZGQAzOhI64CesQnh5dCgGBRZtGIF/Hjw6MmMJZwBPJrXFokHupbkit [...] llUisBZSCxR5/z2K04GKjW9rBZIWBXCRghx6oIwMvjR6XsDghU0LhZruLjmwrCX1 CvohtBjFx/Aa7wDDDS/xDHxuLjC1rhMSOXkTHV+XKObdGkJCREWqteTtShZFNVEs IKHzMkex9vZOP7F1p1ER/Bhp5XWNTlaYRBOlrYvaMnrcKQCIhTr6vCjvnMY5orZ2 1WXjeINPNa7ReDWctVxv4DTtJbVUC6qs910kB8a7ZnxNPVFm3bAXJlmFeGU1Lw== -----END RSA PRIVATE KEY-----
neuer_rsa_key.pub enthält den (sehr langen) String, der auf dem Zielsystem hinterlegt wird:
ssh-rsa AAAAB3NzaC1yc2EAAAA [...] hymRcnUnUxRQ== Mein neuer RSA Key
ed25519 Schlüsselpaar erstellen
Im Prinzip wie beim RSA Key / oben erläutert – hier nur das Beispiel der Erstellung und der Schlüsseldateien.
# ssh-keygen -t ed25519 -C "Mein neuer ed25519 Key" -f neuer_ed25519_key Generating public/private ed25519 key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in neuer_ed25519_key. Your public key has been saved in neuer_ed25519_key.pub. The key fingerprint is: SHA256:KSemeOmKoKQq2Y0MDns0c1EHS08KdmPXb1epN3K92iY Mein neuer ed25519 Key The key's randomart image is: +--[ED25519 256]--+ | o *.o. .| | . =.B. . ..| | .o.. . ...| | . . oo.+.| | .+ S . .+ o| |o +..+ + . | |+O.*+ o | |Oo=o. E o | |B.... o | +----[SHA256]-----+
Erzeugte Dateien (die sind deutlich kürzer als bei RSA Keys, was normal und nicht weniger sicher ist):
# cat neuer_ed25519_key -----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmBBBAAEbm9uZQAAAAAAAAABAAAAUwAAAAtzc2gtZW [...] Z73QX7EwSqH9o90re+k6A3AAFk1laW4gbmV1ZXIgZWQyNTUxOSBLZXkBAgMEBQYH -----END OPENSSH PRIVATE KEY----- # cat neuer_ed25519_key.pub ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AEKAIArZxhutjbmWc7+rnhkFV8X5BG83X7EwSqH9o90re+k6 Mein neuer ed25519 Key
Die hier angegebenen Keys sind nur Beispiele. Den privaten Key bitte nie raus geben. Wenn eine Verbindung zu einem Zielsystem eingerichtet werden soll, wird dort nur der öfftl. Schlüssel (im Beispiel die *.pub Datei) hinterlegt.