Um den SSH- Zugang eines Linux- Server, in diesem Beispiel mit einem Debian- Betriebssystem abzusichern, ist es sinnvoll für den SSH- Zugriff die Public Key Authentifizierung (Certificate-based Authentication) zu aktivieren und zu verwenden.
Für die Public Key Authentifizierung benötigen Sie beispielsweise einen RSA- Public- und Private- Key. Diese können Sie am besten unter Windows mit PuttyGen erzeugen.
1) Generieren eines Public- und Private- Key mit PuttyGen:
Nachdem Sie PuttyGen heruntergeladen und gestartet haben können Sie die Keys wie folgt generieren:
- Wählen Sie einen Key-Typ aus
- Anzahl der Bits eingeben, >=4096 empfohlen
- Key generieren
Als nächstes melden Sie sich an ihrem Server an. Legen Sie in ihrem Benutzerverzeichnis, falls nicht schon vorhanden den Ordner .ssh wie folgt an. Stellen Sie vorab sicher, dass Sie sich in ihrem Home- Verzeichnis befinden. Sie können Sie mit dem Befehl pwd prüfen.
pwd
mkdir .ssh
nano /.ssh/authorized_keys
Kopieren Sie den oben erzeugten Public-Key vollständig und fügen Sie diesen auf Ihrem Server in die Datei „authorized_keys“, welche im Verzeichnis .ssh liegt ein:
nano .ssh/authorized_keys
Setzen Sie nun die korrekten Berechtigungen für das Verzeichis und die Datei:
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
Um den Server nun abzusichern, müssen Sie sicherstellen, dass die Anmeldung am Server nur noch per Public Key Authentifizierung möglich ist. Die notwendigen Einstellungen können Sie in der Konfiguration des SSH-Deamon wie folgt vornehmen:
nano /etc/ssh/sshd_config
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
Damit die Änderungen wirken ist es notwendig den SSH- Deamon neuzustarten.
systemctl restart sshd
2) Generieren eines Public- und Private- Key mit in der Shell:
Sie haben natürlich auch die Möglichkeit den Public- und Private- Key direkt in der Shell zu generieren. Führen Sie hierfür in der Shell folgenden Befehl aus:
ssh-keygen -t rsa -b 4096
Im ersten Schritt können Sie einen Dateinamen für die Keys vergeben. Geben Sie keinen Namen ein, so werden die Keys standartmäßig als „id_rsa“ und „id_rsa.pub angelegt.
Im zweiten Schritt sollten Sie den Private- Key mit einem sicheren Passwort Verschlüsseln.
Die beiden Keys werden im jeweiligen Home- Verzeichnis des ausführenden Benutzers im Verzeichnis .ssh abgelegt.
Kopieren Sie den oben erzeugten Public-Key vollständig und fügen Sie diesen auf Ihrem Server in die Datei „authorized_keys“, welche im Home- Verzeichnis Ihres Benutzers liegt ein:
nano .ssh/authorized_keys
Setzen Sie nun die korrekten Berechtigungen für das Verzeichis und die Datei:
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
Vielen Dank für den Hinweis! Der Tippfehler wurde korrigiert.
unter 2. erzeugst du einen Key der 40 byte groß ist. Ich nehme an, dass die 96 verloren gegangen ist.
Hinweis auf alternativen zu RSA wären noch nice2have…
Ich habe es angepasst. 😉
Vielen Dank und Grüße
Danke für das Tutorial, allerdings gibt es einen kleinen aber gravierenden Typo-Fehler:
Nach dem Keygen erzeugst du mit nano eine Datei in .ssh mit Namen „authorized_key“
In den SSH Configs wird allerdings nach der Datei .ssh/authorized_keys ausgeschaut.
Das hatte zur Folge, dass ich mich fast aus meinem eigenen Server ausgesperrt hätte. 😉
Bitte um Korrektur
LG