Ed25519-SSH-Schlüssel im Terminal generieren

Wer in den letzten Jahren einen SSH-Schlüssel generiert hat, wird meist RSA als kryptografischen Verfahren dafür genutzt haben. Mittlerweile geht die Empfehlung für neue Schlüssel mehrheitlich zu solchen, welche auf elliptische Kurven basieren. Ein solcher Schlüssel kann im Terminal über den Befehl:

ssh-keygen -t ed25519

generiert werden. Alternativ kann eine entsprechende E-Mail-Adresse für den Schlüssel definiert werden:

ssh-keygen -t ed25519 -C ""

Anschließend wird ein entsprechender Schlüssel erzeugt:

The key fingerprint is:
SHA256:1RCIsYVjuj9JUdpkAQEpnHmQEI2n+VsW1hr5dPk/X9w 
The key's randomart image is:
+--[ED25519 256]--+
|o*.=.o+*ooo.     |
|. O o =o=  o     |
| + o =.B .. .    |
|o   * = +.       |
| . . B oS.       |
|  . = o   .    ..|
|   + o .   .    E|
|  .   +     o  . |
|       .     o.  |
+----[SHA256]-----+

Wer sich den öffentlichen Schlüssel anschaut, wird feststellen, das dieser wesentlich kürzer ist:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQFUwFRKdr/6xq208X6ME9kQF0pxVWSEmIkMqJXwUZ2 

Die Länge des Schlüssels verglichen mit den RSA-Schlüsseln sagt allerdings direkt nichts über die Sicherheit des Schlüssels aus. Grundsätzlich sind die Ed25519-Schlüssel kürzer als vergleichbare RSA-Schlüssel. Daneben ist das Verfahren schneller und resistenter gegen Kollisionsattacken und sollte daher in Zukunft gewählt werden.

SSH Schlüssel aus known_hosts entfernen

Manchmal ändert sich die RSA Schlüssel für einen entfernten Server welchen man per SSH erreichen möchte. Dann bekommt man vom System eine schöne Meldung:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.

The fingerprint for the RSA key sent by the remote host is
3b:a3:48:fc:55:70:70:f8:43:33:50:73:d9:b8:1d:9e.

Please contact your system administrator.

Add correct host key in /Users/seeseekey/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/seeseekey/.ssh/known_hosts:17
RSA host key for 8.8.8.8 has changed and you have requested strict checking.
Host key verification failed.

Das Problem besteht darin, das ein alter Fingerprint in der „known_hosts“-Datei vorhanden ist. Die brachiale Methode wäre es die Datei zu löschen. Damit wäre die Verbindung mit dem Server wieder möglich. Natürlich löscht man so auch alle anderen verifizierten Server (bzw. deren Fingerprints). Sauberer ist es den veralteten Key mittels „ssh-keygen“ zu entfernen:

ssh-keygen -R 8.8.8.8

Anschließend wird man beim nächsten Verbindungsversuch wieder gefragt ob man die Verbindung akzeptieren möchte. Ist dies der Fall kann sich mit dem Server verbunden werden.