SSH - sicher

Der Zugriff auf viele Linux-System ist über das Netzwerkprotokoll SSH (Port 22) schnell und sicher möglich - insbesondere wenn keine grafische Oberfläche benötigt wird. Dank X11 wäre dies allerdings auch möglich. Außerdem lassen sich durch den SSH-Zugang auch andere Protokolle tunneln.

SSH steht dabei für "secure shell", das heißt die Datenübertragung erfolgt verschlüsselt. Allerdings sollte man dafür auch aktuelle Standards verwendet werden. Da im Internet ständig nach Servern mit einem offenen Port 22, sollte man den Zugriff gegen Brute-Force-Angriffe absichern und natürliche sicherer Passwörter verwenden. Es kann auch helfen, einen anderen Port zu verwenden um so die Anzahl der Angriffe zu reduzieren.

Public-Keys

Statt sich über ein Passwort zu autorisieren, kann auch ein Schlüssel verwendet werden. Wird dann im SSH-Server die Anmeldung mittels Passwort verboten, laufen Angriffe ohne passenden Schlüssel ins leere.

Zuerst wird ein Schlüsselpaar erzeugt: ssh-keygen -t rsa -b 4096

Standardmäßig wird der private Schlüssel unter ~/.ssh/id_rsa abgelegt und sollte mit einem sehr guten Passwort (Passphrase) geschützt werden.

Man erhält dann eine solche Ausgabe:

Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wc6y3biDWe6XlqbTptp/LZXbJyY3WOvdCM36BdMFOI4 user@client.local
The key's randomart image is:
+---[RSA 4096]----+
|             ..  |
|       .    o  . |
|        o  o .  .|
|       o .E .  ..|
|      . S     o..|
|       +.o   o+o |
|      .=o..o.=o+.|
|      o.+.O =oO++|
|      .o*@...B+o+|
+----[SHA256]-----+

Alternative kann auch ein Schlüssel mit ssh-keygen -t ed25519 -b 521 erzeugt werden.

Die Schlüssel id_rsa bzw. id_ed25519 sind die privaten Schlüssel und vor fremden Zugriff zu schützen. Die Schlüssel id_rsa.pub bzw. id_ed25519.pub sind die öffentlichen Gegenstücke und müssen auf dem jeweiligen Server hinterlegt werden.

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

bzw.

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server

Dabei wird die Datei ~/.ssh/authorized_keys auf dem Server angelegt bzw. ergänzt.

Anschließend sollte man unbedingt testen, ob der SSH-Zugang mittels Key funktioniert. ssh user@server Als Passwort ist nun die beim Anlegen des Schlüssels angegebene Passphrase anzugeben.

Stand: 20.02.2022