Tutorials - Secure SSH Tutorial Part 2: Identity/Pubkey Authentifizierung

Sprachenübersicht/Betriebssysteme/Linux/Security

Secure SSH Tutorial Part 2: Identity/Pubkey Authentifizierung

Diese Seite wurde 28042 mal aufgerufen.

Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.

Editieren Versionen Linkpartnerschaft Bottom Printversion

Keywords: SSH, secure, OpenSSH, Identity/Pubkey Authentifizierung, identity, pubkey, authentication

Inhaltsverzeichnis



Vorwort Top



Im ersten Teil dieser Tutorialserie ging es um die sichere Verwaltung des Host-Schlüssels, dieser Teil beschäftigt sich mit Identity/Pubkey Authentifizierung unter SSH.

Tutorials in dieser Artikelserie Top








Einführung Top



OpenSSH - wenn ich in diesem Tutorial den Begriff SSH verwende, meine ich eigentlich immer OpenSSH - unterstützt einige nützliche Dinge zur Authentifizierung der Benutzer. Wir schauen uns jetzt die "Identity/Pubkey Authentifizierung" an. Bei dieser Methode ersetzen wir die normale Vorgehensweise, statische Passwörter zu benutzen, die mit einem Keylogger abgehört werden können. Alles, was wir brauchen, ist ein Schlüsselpaar auf der Festplatte, mit dem wir uns authentifizieren. Der SSH-Server hat die Identities/Pubkeys, welchen er vertraut, in einer Liste.

Vorteile:

- Ein Keylogger reicht nicht mehr, da der private Key und die Passphrase benötigt werden
- Bruteforce- und Directoryhacks funktionieren nicht mehr

Identity/Pubkey erstellen Top



Wie schon im ersten Teil erwähnt, gibt es drei Typen von Protokollen, die wir verwenden können:

Code:

 
- RSA1    Parameter: -t rsa1    Standarddateiname: identity    Protokoll: SSH 1 
- RSA    Parameter: -t rsa    Standarddateiname: id_rsa    Protokoll: SSH 2 
- DSA    Parameter: -t dsa    Standarddateiname: id_dsa    Protokoll: SSH 2 



Wir erstellen das Schlüsselpaar wie gewohnt mit ssh-keygen:

Code:

 
workstation:/home/simon# ssh-keygen -t rsa 
Generating public/private rsa key pair. 
Enter file in which to save the key (/home/simon/.ssh/id_rsa):  
Enter passphrase (empty for no passphrase):  
Enter same passphrase again:  
Your identification has been saved in /home/simon/.ssh/id_rsa. 
Your public key has been saved in /home/simon/.ssh/id_rsa.pub. 
The key fingerprint is: 
01:4a:69:4a:81:16:f2:b9:aa:41:da:55:af:dd:34:ce simon@workstation 
workstation: 
workstation:/home/simon# cd $HOME/.ssh/ 
workstation:~/.ssh# ls 
id_rsa  id_rsa.pub 



Jetzt sehen wir die zwei Dateien, die ssh-keygen erstellt hat: id_rsa, und id_rsa.pub. Die erste Datei ist der Private Key und ist mit der Passphrase geschützt, die zweite Datei (.pub) ist der Public Key.


Identity/Pubkey zum Server hochladen Top



Jetzt schicken wir den Public Key dem Server, dazu verwenden wir scp, ein Tool von SSH, welches für Filetransfer gedacht ist:

Code:

 
workstation:/# cd $HOME/.ssh/ 
workstation:/home/simon/.ssh# scp id_rsa.pub simon@ssh-server:id_rsa_workstation.pub 
Password: 
workstation:/home/simon/.ssh# ssh ssh-server -L simon 
Password: 
ssh-server:/ cd $HOME 
ssh-server:/home/simon# mkdir .ssh && chmod 700 .ssh && cd .ssh 
 
#Jetzt fügen wir die Datei hinzu, die wir hochgeladen haben 
ssh-server:/home/simon/.ssh# cat ../id_rsa_workstation.pub >> authorized_keys 
ssh-server:/home/simon/.ssh# chmod 600 authorized_keys 
ssh-server:/home/simon/.ssh# rm ../id_rsa_workstation.pub && exit 




Identity/Pubkey Authentifizierung auf dem Server einstellen Top



Jetzt wollen wir auf dem SSH-Server einstellen, dass der Server Identity/Pubkey erlaubt. Dazu editieren wir die sshd_config

sshd_config:


#SSH version 1 Identity Authentifizierung 
RSAAuthentication yes 
 
#SSH version 2 Pubkey Authentifizierung 
PubkeyAuthentication yes 
  
#Der Aufbewahrungsort der Schlüssel, ohne führenden Slash liegen sie relativ zum Home-Verzeichnis. 
AuthorizedKeysFile    .ssh/authorized_keys 



Nach einem Neustart des Servers sollte der SSH-Server Identity/Pubkey Authentifizierung erlauben.

Jetzt können wir noch die normale Passwort-Authentifizierung abschalten:

sshd_config:

 
PasswordAuthentication no 
UsePAM no




Nachdem wir jetzt alles vorbereitet haben, können wir den Unterschied ausprobieren:

Code:

 
workstation:/# ssh ssh-server 
Enter passphrase for key '/home/simon/.ssh/id_rsa': 



Mit dem Parameter -v können wir übrigens sehen, was passiert, wenn wir uns mit einem SSH-Server verbinden.

Schlüsselpaar auswählen Top



Mit dem Parameter -I <keyfile> können wir den Schlüssel auswählen, der für die Identity/Pubkey Authentifizierung verwendet wird:

Code:

 
workstation:/# ssh -i ~/.ssh/ssh_key  ssh-server 
Enter passphrase for key '/home/simon/.ssh/ssh_key': 



Standardmäßig lässt sich das in der Datei ~/.ssh/config eintragen:

Code:

 
   Host ssh-server 
   IdentityFile ~/.ssh/special_ssh_key 



Ratschläge Top



Der angelegte Schlüssel sollte eine Passphrase benutzen, damit der Schlüssel geschützt ist, die Passphrase wird zum Entschlüsseln des Schlüssels benutzt, ohne diese Passphrase hat jeder, der an den Private Key kommt, vollständigen Zugriff auf den SSH-Server. Wie man sich bei einem SSH-Server mit einer Passphrase einloggen kann, ohne ein Passwort eintippen zu müssen, wird wahrscheinlich im nächsten oder übernächsten Artikel gezeigt.

Bei älteren Versionen von ssh kann es vorkommen, dass authorized_keys für SSHv1 und authorized_keys2 für SSHv2 benutzt wird, ein Hardlink, der mit ln authorized_keys authorized_keys2 erzeugt wird, löst dieses Problem.

Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?

Editieren Versionen Linkpartnerschaft Top Printversion

Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, das Tutorial kann wiederhergestellt werden

Sprachenübersicht/Betriebssysteme/Linux/Security/Secure SSH Tutorial Part 2: Identity/Pubkey Authentifizierung