Kategorie:Linux: Unterschied zwischen den Versionen

Aus Foxwiki
(Die Seite wurde geleert.)
Markierung: Geleert
Keine Bearbeitungszusammenfassung
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===

Version vom 17. Juli 2019, 13:52 Uhr

Authentifizierung der Server mit Schlüsseln

Server authentifiziert sich gegenüber dem Client mit seinem Hostkey.
Ist der Ziel-Host dem Client noch nicht bekannt, erfolgt eine Warnmeldung.
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.
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.
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.
Mit Erweiterung .pub = öffentlicher (public) Schlüssel.
Die Konfigurationsdatei dazu ist sshd_config.

DSA gilt als veraltet und weist auch zumindest eine bekannte Schwäche auf.
Sie sollten es nicht mehr verwenden. Ab der Version 7.0 von SSH wird es auch nicht mehr unterstützt.
ECDSA ist Momentan bei den meisten Linux-Distributionen Standard.
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.
Es spricht also nichts gegen die Verwendung von RSA, außer dass RSA schon seit 1977 existiert.
Ed25519 ähnelt technisch ECDSA, weist aber nicht dieselbe Schwäche auf.
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.

Das Programm ssh-keygen generiert neue Schlüssel.
Optional muss die Pfadangabe zum entsprechenden Dateinamen des Users angeben werden.
Option –t legt den Typ des zu generierenden Schlüssels fest.
Zur Auswahl stehen rsa, dsa, ecdsa und ed25519.

Beispiel:
Ein neues Schlüsselpaar für RSA wird erstellt.
Benutzereingaben sind fett gedruckt.
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.
Sie kann zur Verteilung an Clients verwendet werden.
Die Datei ssh_host_rsa_key enthält den privaten Schlüssel des Servers und ist entsprechend geheim zu halten.
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

Unterkategorien

Diese Kategorie enthält die folgenden 25 Unterkategorien (25 insgesamt):

L

Seiten in der Kategorie „Linux“

Diese Kategorie enthält nur die folgende Seite.