Debian – SSH mit Public Key Authentifizierung absichern

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



4 thoughts on “Debian – SSH mit Public Key Authentifizierung absichern

  1. 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.