Das Erstellen ist sehr einfach, die Wahl des richtigen Verfahrens ist es nicht unbedingt.
Derzeit (Ende 2015) möchte man (in dem Fall ich) ed25519 als Algorithmus einsetzen. Alternativ wäre auch RSA mit 2048 oder 4096 bit länge ok.
ssh-keygen -t ed25519
oder
ssh-keygen -t rsa -b 4096
Mehr ist es auch nicht um einen SSH key zu erstellen. Zu beachten ist allerdings noch die passphrase und der Kommentar.
example@server:~$ ssh-keygen -t ed25519 -C example@schoen-bloed.at
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/example/.ssh/id_ed25519): ./example/id_ed25519
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./example/id_ed25519.
Your public key has been saved in ./example/id_ed25519.pub.
The key fingerprint is:
81:d4:92:81:ae:76:88:37:4e:ed:eb:ec:9b:fe:3a:bf example@schoen-bloed.at
The key's randomart image is:
+--[ED25519 256]--+
| .o+ |
| ..o.. |
| . ... |
| . . |
| . + S |
|. B o |
| = + |
| ..o. |
| +XBE. |
+-----------------+
In diesem Beispiel verwendet ich als Kommentar example@schoen-bloed.at damit ich weiß welches Schlüsselpaar es ist. Als Algorithmus wird ed25519 mit der Standardlänge von 256bit verwendet. Den Standardpfad überschreibe ich und lege die Dateien im unter Ordner example ab. Als passphrase kann nichts eingegeben werden, allerdings rate ich davon ab, außer der Key wird für automatische Zwecke verwendet zb. Backups erstellen über SSH.
Am Ende werden 2 Dateien erstellt „id_ed25519“ das ist der Private Key der niemals veröffentlicht werden darf und „id_ed25519.pub“ der Public Key dieser wird beim SSH Server eingetragen.
Das Eintragen beim SSH Server ist einfaches Copy-Paste des Public Keys in die Datei ~/.ssh/authorized_keys, diese muss die Dateirechte 600 besitzen und muss angelegt werden sollte sie noch nicht existieren.
Der Inhalt der authorized_keys Datei ist in diesem Fall:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJmaoSAUsWs0fUKPpgDQE0SIWNH/bbRRyeChQHFhtRKA example@schoen-bloed.at