SSH Key erstellen

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.