Linux - Erstellen und Verteilen von SSH-Keys

Eine Alternative zum klassischen Login via Kennwort, bietet die Authentifizierung via SSH-Schlüsselpaar. In diesem Artikel zeige ich Euch, wie Ihr Schlüssel generieren und diese verteilen könnt.

Auf Eurem lokalen Linux, sowie auf dem entfernten Server muss der gleiche Benutzer angelegt werden. In diesem Beispiel, heißen die Benutzer rsb. Das lokale Linux hat die IP 10.10.10.10 und der Server die IP 10.10.10.20

Das Ganze wurde auf einem Raspberry Pi 4 mit Ubuntu Mate 20.10 durchgeführt. Die Umsetzung ist jedoch auch mit jeglicher Linux-Distribution möglich. Nur die Befehle können hier abweichen.

Zuerst legen wie die Benutzer mit sudo adduser rsb an

root@ubuntu:~# adduser rsb
adduser rsb
Benutzer »rsb« wird hinzugefügt …
Neue Gruppe »rsb« (1001) wird hinzugefügt …
Neuer Benutzer »rsb« (1001) mit Gruppe »rsb« wird hinzugefügt …
Persönliche Ordner »/home/rsb« wird erstellt …
Dateien werden von »/etc/skel« kopiert …
Bitte ein neues Passwort eingeben:
Bitte das neue Passwort erneut eingeben:
passwd: Passwort erfolgreich geändert
Benutzerinformationen für rsb werden geändert.
Geben Sie einen neuen Wert an oder drücken Sie ENTER für den Standardwert
Vollständiger Name []:
Zimmernummer []:
Telefon geschäftlich []:
Telefon privat []:
Sonstiges []:
Ist diese Information richtig? [J/N] j

Nachdem die Benutzer angelegt sind, wechseln wir auf unserem lokalen Linux zum neuen Benutzerkonto

root@ubuntu:~# su - rsb
rsb@ubuntu:~$

Und testen die Verbindung zum Server mit ssh rsb@10.10.10.20 Ist der Login via Passwort erfolgreich, können wir mit dem Erstellen der Schlüssel weitermachen.

Wir verwenden einen RSA-Key mit 4096 Bit Länge

Diesen erstellen wir mit ssh-keygen -b 4096

rsb@linux:~$ ssh-keygen -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/rsb/.ssh/id_rsa):
Created directory '/home/rsb/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/rsb/.ssh/id_rsa
Your public key has been saved in /home/rsb/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:LkOP1ihhzEmBFNc34S7SJbkWfapT9JUggqhpKcJ3VMA rsb@linux
The key's randomart image is:
+–[RSA 4096]–+
.o++++.o..
o..E.=o. . .
.o. o +.=.. o
=+ = + B + .
+ . O * S .
. = X
. O +
o +
+–[SHA256]–+

Generell ist es empfohlen ein Passwort für den Schlüssel zu setzen, damit liegt dieser nicht im Klartext vor sondern ist verschlüsselt. Für den Fall, dass der „Private Schlüssel“ in falsche Hände gerät, kann dieser ohne das Passwort nicht verwendet werden.

Die Schlüsseldateien findet Ihr anschließend in Eurem .ssh Verzeichnis

rsb@linux:~$ ls -la .ssh
insgesamt 16
drwx—— 2 rsb rsb 4096 Feb 28 07:06 .
drwxr-xr-x 3 rsb rsb 4096 Feb 28 07:06 ..
-rw——- 1 rsb rsb 3381 Feb 28 07:06 id_rsa
-rw-r–r– 1 rsb rsb 740 Feb 28 07:06 id_rsa.pub

Mit dem Tool ssh-copy-id wird der Public-Key auf den Zielserver übertragen

rsb@linux:~$ ssh-copy-id -i .ssh/id_rsa.pub rsb@10.10.10.20
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: „.ssh/id_rsa.pub“
The authenticity of host '10.10.10.20 (10.10.10.20)' can't be established.
ECDSA key fingerprint is SHA256:F1syiVFKLvqtWAIyv27KLNRby49pURmMHq8E3Ab3asg.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed – if you are prompted now it is to install the new keys
rsb@10.10.10.20's password:

Number of key(s) added: 1

Now try logging into the machine, with: „ssh 'rsb@10.10.10.20'“
and check to make sure that only the key(s) you wanted were added.

rsb@linux:~$

Nachdem der Schlüssel übertragen ist, können wir die Verbindung mit ssh rsb@10.10.10.20 testen.

Nun sollte nicht mehr nach dem Benutzerkennwort, sondern nach dem Kennwort für den Schlüssel gefragt werden und nach Eingabe die Verbindung hergestellt werden.

Die Authentifizierung via Schlüssel bietet einen weiteren Schutz Eures Zuganges. Ist jemand unberechtigt an Euer Passwort gekommen, kann er ohne Euren Private Key keine Verbindung zum Server herstellen. Aus diesem Grund ist es wichtig diesen sicher zu verwahren und niemals jemand zu übergeben.

Euer RSB


Zusammenhängende Beiträge

Wir haben die hier gezeigten Anleitung sorgfältig erstellt und in unserer Testumgebungen ausgiebig getestet.
Wer sich entschließt diese Anleitungen für sich selbst umzusetzen, führt diese auf eigene Verantwortung durch.
Der Ersteller des Artikels, sowie der Seitenbetreiber, haftet nicht für eventuelle Schäden an Hard- und/oder Software oder damit zusammenhängenden Schäden\\

2021/03/06 23:11 · rsb

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
F B O R​ I
 
  • wiki/linux/konnektivitaet/linux-ssh-key.txt
  • Zuletzt geändert: 2021/09/18 05:31
  • von 127.0.0.1