Skip to content

Linux - SSH Login ohne Passwort mit SSH Schlüssel einrichten

Für die Wartung von Servern oder anderen sicheren Netzwerkverbindungen wird meistens SSH (Secure SHELL) verwendet.

Normalerweise erfolgt die Authentifizierung so einer Verbindung via Passwort. Viel sicherer ist eine Authentifizierung mit einem SSH Schlüssel. Für die Einrichtung einer sicheren Verbindung mit SSH Schlüssel sind nur wenige Handgriffe nötig.

Hier eine kurze Anleitung für das Umstellen von Passwort auf SSH Schlüssel Authentifizierung.

Vorraussetzung ist, dass das SSH Server Paket bereits installiert ist.

Schlüssel erzeugen

ssh-keygen -t rsa -b 4096

Generating public/private rsa key pair.

Enter file in which to save the key (/home/guenny/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/guenny/.ssh/id_rsa.

Your public key has been saved in /home/guenny/.ssh/id_rsa.pub.

The key fingerprint is:

a5:e2:b2:38:ff:a7:f5:de:03:dd:ss:6e:dd:c8:7d:11

The key's randomart image is:

+--[ RSA 4096]----+

|                 |

|                 |

|          .      |

|         oE      |

|     .  S ..     |

|    + o. ..      |

|. o. =.o.+ .     |

| = ..o+o+ o .    |

|. .o+oo.   .     |

+-----------------+

Schlüssel kopieren

sudo cat home/guenny/.ssh/id_rsa.pub >> /guenny/.ssh/authorized_keys

SSH Konfiguration sichern

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig

SSH Konfiguration für Public Key Auth anpassen

sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config

sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config

sudo echo "DebianBanner no" >> /etc/ssh/sshd_config

Die Werte RSAAuthentication und PubkeyAuthentication sollten in den Standardeinstellungen bereits auf yes stehen

Konfiguration neu laden

sudo service ssh reload

Sobald die Konfiguration neu geladen wurde, ist es zwingend notwendig mit einer zweiten Verbindung zu testen, ob alles richtig konfiguriert wurde. Die bestehende Verbindung sollte dazu offen bleiben. 

Schlüssel auf andere Server kopieren 

Um Schlüssel auf andere Server zu kopieren kann der Befehl ssh-copy-id verwendet werden.

ssh-copy-id -i ~/.ssh/id_rsa.pub REMOTE_SERVER