|
|
Zeile 1: |
Zeile 1: |
| ==Authentifizierung der Server mit Schlüsseln==
| |
|
| |
|
| Server authentifiziert sich gegenüber dem Client mit seinem Hostkey.<br>
| |
| Ist der Ziel-Host dem Client noch nicht bekannt, erfolgt eine Warnmeldung.<br>
| |
| In der Meldung erscheint auch der Fingerprint des Hostkeys:
| |
|
| |
| [root@scientific /]# ssh uvm1.nwa-net.de
| |
| The authenticity of host
| |
| uvm1.nwa-net.de (176.95.26.236)' can't be established.
| |
| ECDSA key fingerprint is SHA256:TbVCtl6TJHAHacrTdwh9gqzvx8fB5bzhi1lL/ByFbYE.
| |
| ECDSA key fingerprint is MD5:c8:db:4a:6f:99:7a:e9:9d:ca:82:c7:36:99:ac:14:c9.
| |
| Are you sure you want to continue connecting (yes/no)?
| |
|
| |
| Bestätigt man mit yes, wird der Hostkey des Servers in die Datei ~./ssh/known_hosts des Benutzers eingetragen und die Verbindung hergestellt.<br>
| |
| Bei späteren Anmeldungen entfällt entsprechend die Warnmeldung.
| |
| Eine Liste der bekannten Hosts können Sie mithilfe des folgenden Kommandos bekommen:
| |
|
| |
| [root@scientific /]# ssh-keygen -l -f ~/.ssh/known_hosts
| |
| 256 SHA256:VOrsAcZc//9EiAATV2DfSN2jHONQBEuJpyrmW+Q3CWQ
| |
| user,192.168.178.2 (ECDSA)
| |
| 256 SHA256:TbVCtl6TJHAHacrTdwh9gqzvx8fB5bzhi1lL/ByFbYE
| |
| uvm1.nwa-net.de,176.95.26.236 (ECDSA)
| |
|
| |
| Ändert sich der Schlüssel eines Zielsystems, erfolgt die Warnmeldung:
| |
|
| |
| $ ssh scientific
| |
| @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
| |
| @ 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 ECDSA key sent by the remote host is
| |
| SHA256:r+9OEu2EM5ubr0P5wl4lLgUo5n/8/AkX2exIiPqQ9rs.
| |
| Please contact your system administrator.
| |
| Add correct host key in /root/.ssh/known_hosts to get rid of this message.
| |
| Offending ECDSA key in /root/.ssh/known_hosts:15
| |
| ECDSA host key for scientific has changed and you have requested strict checking.
| |
| Host key verification failed.
| |
|
| |
| Wenn es sich um keine echte man-in-the-middle-attack handelt, entfernt man mithilfe eines Editors den veralteten Schlüssel aus der known_hosts-Datei und baut die Verbindung erneut auf.
| |
|
| |
| ==/etc/ssh/ssh_known_hosts==
| |
|
| |
| Die ssh_known_hosts ist ausdrücklich als Prüfungsthema genannt und wird deshalb ausführlich bearbeitet.<br>
| |
| Sie macht nichts anderes als die Datei ~/.ssh/known_hosts für jeden Benutzer, nur eben zentralisiert.
| |
|
| |
| ===Hostkeys===
| |
|
| |
| OpenSSH erstellt in der Regel automatisch Hostkeys.
| |
| Sie dienen der Authentifizierung zwischen Server und Clientcomputer.
| |
| Die folgenden Dateien enthalten jeweils eine den privaten und die andere den öffentlichen Schlüssel:
| |
|
| |
| ssh_host_dsa_key
| |
| ssh_host_dsa_key.pub
| |
| ssh_host_ecdsa_key
| |
| ssh_host_ecdsa_key.pub
| |
| ssh_host_ed25519_key
| |
| ssh_host_ed25519_key.pub
| |
| ssh_host_rsa_key
| |
| ssh_host_rsa_key.pub
| |
|
| |
| Ohne Dateierweiterung = privater Schlüssel.<br>
| |
| Mit Erweiterung .pub = öffentlicher (public) Schlüssel.<br>
| |
| Die Konfigurationsdatei dazu ist sshd_config.
| |
|
| |
| DSA gilt als veraltet und weist auch zumindest eine bekannte Schwäche auf. <br>
| |
| Sie sollten es nicht mehr verwenden. Ab der Version 7.0 von SSH wird es auch nicht mehr unterstützt.<br>
| |
| ECDSA ist Momentan bei den meisten Linux-Distributionen Standard.<br>
| |
| Es kommt mit kleineren Schlüsselgrößen aus, als etwa RSA, steht aber leider im Verdacht, die gleichen Schwächen aufzuweisen wie DSA. RSA ist ein gut etablierter Standard, der überall unterstützt wird.<br>
| |
| Es spricht also nichts gegen die Verwendung von RSA, außer dass RSA schon seit 1977 existiert.<br>
| |
| Ed25519 ähnelt technisch ECDSA, weist aber nicht dieselbe Schwäche auf.<br>
| |
| Es wird nur von sehr neuen SSH-Versionen unterstützt und es empfiehlt sich daher nicht, Ed25519 als Standalone-Lösung zu verwenden, wenn man auch ältere Clientsysteme im Einsatz hat.<br>
| |
|
| |
| Das Programm ssh-keygen generiert neue Schlüssel.<br>
| |
| Optional muss die Pfadangabe zum entsprechenden Dateinamen des Users angeben werden.<br>
| |
| Option –t legt den Typ des zu generierenden Schlüssels fest.<br>
| |
| Zur Auswahl stehen rsa, dsa, ecdsa und ed25519.<br>
| |
|
| |
| '''Beispiel:'''<br>
| |
| Ein neues Schlüsselpaar für RSA wird erstellt.<br>
| |
| Benutzereingaben sind fett gedruckt.<br>
| |
| Eine passphrase wurde nicht verwendet.
| |
|
| |
| [root@scientific /]# ssh-keygen -t rsa
| |
| Generating public/private rsa key pair.
| |
| Enter file in which to save the key (/root/.ssh/id_rsa):
| |
| /etc/ssh/ssh_host_rsa_key
| |
| /etc/ssh/ssh_host_rsa_key already exists.
| |
| Overwrite (y/n)? y
| |
| Enter passphrase (empty for no passphrase):
| |
| Enter same passphrase again:
| |
| Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
| |
| Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
| |
| The key fingerprint is:
| |
| SHA256:zinmLbZLTBxcCOWN52QBDniQVAE9GfD/MuuQHzk3QQ4 root@scientific
| |
|
| |
| Die generierte Datei ssh_host_rsa_key.pub enthält den öffentlichen Schlüssel des Systems.<br>
| |
| Sie kann zur Verteilung an Clients verwendet werden.<br>
| |
| Die Datei ssh_host_rsa_key enthält den privaten Schlüssel des Servers und ist entsprechend geheim zu halten.<br>
| |
| Folgende Kommandos können vom Clientsystem verwendet werden um den öffentlichen Schlüssel zu importieren:
| |
|
| |
| root@client:/# scp scientific:/etc/ssh/ssh_host_rsa_key.pub ./
| |
| root@client:/# cat ssh_host_rsa_key.pub >> /etc/ssh/ssh_known_hosts
| |
| root@client:/# rm ssh_host_rsa_key.pub
| |
|
| |
| ===Benutzerauthentifizierung mit Schlüsseln===
| |