How-to: SSH Key-Basierte Authentifizierung auf dem Linux-Server und dem Linux-Client

Für die SSH Key-Basierte Authentifizierung mit Putty klicken Sie hier

Die Anweisungen sind für die drei wichtigsten Linux-Distributionsfamilien – Redhat/Fedora (CentOS), SUSE (OpenSUSE) und Debian (Ubuntu) – gleich:

Verwendete Programme bzw. Befehle:

ssh-keygen: Zur Generierung des RSA-Schlüssels
ssh-agent: Zur Zwischenspeicherung des privaten Schlüssels, um die Verwendung des privaten Schlüssels zu erleichtern
ssh-copy-id: Zum Kopieren des öffentlichen Schlüssels auf dem Remote-Server Schritt 1: Den Remoteserver vorbereiten

Schritt 1: Den Remoteserver vorbereiten

  • Öffnen Sie die Datei /etc/ssh/ssh/sshd_config und überprüfen Sie folgende Parameter:

Der Parameter PasswordAuthentication kann auf „no“ gesetzt werden, nachdem die Keybased Authentifizierung eingerichtet und erfolgreich getestet wurde.

  • Setzen Sie die entsprechenden Dateizugriffsrechte:

Das ist erforderlich, wenn in /etc/ssh/ssh/sshd_config der Parameter StrictModes auf yes gesetzt ist. Dieser Parameter wird verwendet, um festzulegen, ob sshd die Berechtigungen des Home -Verzeichnisses überprüfen soll, bevor die SSH-Verbindung akzeptiert wird.

  • Wenn SELinux aktiviert ist, stellen Sie die standardmäßigen SELinux-Kontexte wieder her:

  • Starten Sie den sshd-Dienst neu:

Schritt 2: Public und Private Keys erzeugen (auf dem Client Rechner)

  • Geben Sie den Typ, die Länge, den Namen und den Pfad der Keys ein. Wenn Sie eine Passphrase verwenden möchten, geben Sie diese ein. Andernfalls drücken Sie einfach die Enter-Taste

Anmerkung:

Es ist nicht notwendig, eine Passphrase anzugeben. Ich empfehle jedoch dringend, eine Passphrase zu verwenden. Dies ist eine zusätzliche Sicherheitsstufe. Falls der Private Key kompromittiert wird, kann er ohne die Passphrase nicht mehr verwendet werden.

Im folgenden Beispiel werde ich einen 2048-Bit-RSA-Schlüssel mit Standardnamen und Pfad erzeugen. Der Standardpfad lautet $HOME/.ssh.

Im obigen Beispiel ist id_rsa der Private Schlüssel (Private Key) und id_rsa.pub der öffentliche Schlüssel (Public Key).

Schritt 3: Den Public Key (id_rsa.pub) zur Liste der autorisierten Keys auf dem Remote-Server hinzufügen

  • Standardmäßig werden die autorisierten Keys in &HOME/.ssh/authorized_keys gespeichert. Wenn die Datei &HOME/.ssh/authorized_keys auf dem Remote-Server nicht existiert, erstellen Sie sie.

  • Sie können den öffentlichen Schlüssel manuell oder mit dem Befehl ssh-copy-id kopieren. Nachfolgend ist das Beispiel ssh-copy-id aufgeführt:

Schritt 4:  Den ssh-agent starten und den privaten Schlüssel zum SSH -Agent hinzufügen

Anmerkung: Wieso „eval“?

Wenn man nur ssh-agent eintippt, gibt das Programm die Umgebungsvariablen aus, die für die Verbindung mit dem ssh-agent erforderlich sind. z.B.

Durch den Aufruf von „eval“ werden diese Umgebungsvariablen sofort in die Umgebung geladen.

Schritt 5: Schlüssel-basierte Authentifizierung auf Funktionstüchtigkeit überprüfen

Anmerkung: Wenn ich keine Passphrase verwendet hätte, wäre ich direkt angemeldet gewesen, ohne nach der Passphrase gefragt zu werden.

Schritt 6: die Passwort-Authentifizierung auf dem Remote-Server deaktivieren (dringend empfohlen)

Öffnen Sie die Datei /etc/ssh/ssh/sshd_config und überprüfen Sie folgende Parameter:

Das war’s!

1 Comment

Hinterlassen Sie einen Kommentar