How-to: SSH Public Key Authentifizierung mit Putty auf dem Windows Rechner
Für das „How-to“ SSH Public Key Authentifizierung auf dem Linux-Server und dem Linux-Client 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:
puttygen.exe: Zur Generierung des RSA-Schlüssels
pageant.exe: Zur Zwischenspeicherung des privaten Schlüssels, um die Verwendung des privaten Schlüssels zu erleichtern
putty.exe: SSH-Client
Schritt 1: Den Remoteserver vorbereiten
-
Öffnen Sie die Datei /etc/ssh/ssh/sshd_config und überprüfen Sie folgende Parameter:
1 2 3 4 |
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication yes |
Der Parameter PasswordAuthentication kann auf „no“ gesetzt werden, nachdem die Keybased Authentifizierung eingerichtet und erfolgreich getestet wurde.
-
Setzen Sie die entsprechenden Dateizugriffsrechte:
1 2 |
$ chmod 700 $HOME/.ssh $ chmod 600 $HOME/.ssh/authorized_keys |
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:
1 |
$ restorecon -R &HOME/.ssh |
-
Starten Sie den sshd-Dienst neu:
1 |
$ sudo systemctl restart sshd.service |
Schritt 2 (auf demWindows Rechner): Den Key Generator „puttygen.exe“ von https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html herunterladen und ausführen
Schritt 3: Public und Private Keys mit puttygen erzeugen
-
Bewegen Sie die Maus über das App-Fenster, um die Keys zu generieren
-
Nachdem die Keys generiert wurden, kopieren Sie den Public Key im open-ssh-Format
Schritt 4: Den Public Key manuell zur Liste der autorisierten Keys auf dem Remote-Server hinzugefügen
-
Melden Sie sich dazu auf dem Remote-Server an und fügen Sie den Public Key hinzu Datei $HOME/.ssh/authorized_keys.
1 |
$ mkdir $HOME/.ssh |
-
Ändern der Dateiberechtigungen des .ssh Ordner auf 700. Ansonsten werden die Keys abgelehnt
1 |
$ chmod 700 $HOME/.ssh |
1 |
$ vi $HOME/.ssh/authorized_keys |
1 |
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAsr81+lxOaGatHxuyZzkvPQ4xPEAx2lF69u5zUktd1Q6Xe9QOFqKRifaoB1dEWxfSxwsms9XUti8EftK5EvQ6JpoyS87bmLSrnK4tSsFKC/tOXEutohF2wterAgOMM85LDW6eF8wLtZ1R2bj03kl+jNkxRzmeFYYbuK4NTATT12ZuHlCwpnYMzqb/zsuYXRL7dt/KS9Fqsh6LUYm4u3OrCH7mQMsDEDsKdKtBMdqXAWNTR4efKGkzb2ZSG9hVWaNw0g2Ho2uepPnIERvEaEL5Qd9IAXjek1ThwNWSoP2uTn/4tf1ItCJxXLsk6D6uE+Q4gEdlnJGBbVfhGVl6Jh5vkw== rsa-key-20181230 |
-
Ändern der Dateiberechtigungen der authorized_keys auf 600. Ansonsten werden die Keys abgelehnt
1 |
$ chmod 600 $HOME/.ssh/authorized_keys |
Schritt 5: Auf dem keygen -Tool eine Passphrase für den Privaten Key eingeben und die Public und Private Keys auf dem Windows Rechner speichern
Anmerkung:
Es ist nicht notwendig, eine Passphrase anzugeben. Ich empfehle jedoch dringend, eine Passphrase zu verwenden. Die Passphrase wird verwendet, um einen weiteren Key zu generieren, der den Privaten -Key an sich verschlüsselt. Dies ist eine zusätzliche Sicherheitsstufe. Falls der Private Key kompromittiert wird, kann er ohne die Passphrase nicht verwendet werden.
Schritt 6: einen neuen SSH Host einrichten
Öffnen Sie den Putty und richten Sie einen neuen SSH-Host ein:
- Geben Sie den Benutzer, den Host und den Port an
- Geben Sie unter Connection > SSH > Auth den Pfad für den Private Key an
- Speichern Sie die Konfiguration
Schritt 7: die Schlüssel-basierte Authentifizierung auf Funktionstüchtigkeit überprüfen
Öffnen Sie eine ssh-Sitzung mit dem Remote-Server mit der gespeicherten Konfiguration:
Anmerkung: Wenn ich keine Passphrase verwendet hätte, wäre ich direkt angemeldet gewesen, ohne nach der Passphrase gefragt zu werden
Schritt 8: 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:
1 |
PasswordAuthentication no |
Sie möchten nicht bei jedem Login die Passphrase eingeben müssen? Verwenden Sie den Putty SSH-AGENT.
Putty SSH-AGENT:
Wenn man die Passphrase nicht jedes Mal eingeben möchte, kann man den putty ssh-agent zur Verwaltung der privaten Schlüssel und Passphrasen verwenden. Dafür:
- Den Putty ssh-agent “ exe “ von https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html herunterladen und ausführen
- Klicken Sie auf „Add Key“, wählen Sie den Privaten Key und geben Sie bei Aufforderung die Passphrase ein.
- Klicken Sie anschließend auf „Close“
- Nun läuft der ssh-agent im Hintergrund. In Putty selbst muss man den Privaten Key nicht mehr angeben. Stellen Sie jedoch sicher, dass im Putty der Haken “ Attempt authentication using Pagent“ gesetzt ist
1 Comment