Benutzer-Werkzeuge

Webseiten-Werkzeuge


  • Deutsch (German)
  • English
  • Français (French)
de:technische-dokumentationen:tutorials:ssh_login_mit_keys_ueber_putty

SSH-Authentifizierung mit Putty-Keys

Version Status Datum Author URL
0.1 Erster Entwurf 18.09.2020 Paul Speck
0.2 Ergänzungen 18.09.2020 Paul Speck
1.0 Review und Freigabe TT.MM.JJJJ Vorname Nachname

1. Kurzfassung

Die Public-Key-Authentifizierung ist eine Authentifizierungsmethode, die unter anderem von SSH und OpenSSH verwendet wird, um Benutzer mit Hilfe eines Schlüsselpaars, bestehend aus privatem und öffentlichem Schlüssel, an einem Server anzumelden. Ein solches Schlüsselpaar ist wesentlich schwerer zu kompromittieren als ein Kennwort.

Bei einer Authentisierung mittels eines Kennworts wird dieses Kennwort, oder dessen „Hash-wert“, auf einem Server gespeichert. Hat jemand Zugang zur Kennwortdatei auf diesem Server, gelangt er damit im ersten Fall auch in den Besitz des Kennworts. Im zweiten Fall kann er, mit Hilfe entsprechender Software, eine Zeichenkombination finden, die den gleichen „Hash-wert“ wie das Kennwort ergibt. Wird das gleiche Kennwort zur Anmeldung auf mehreren Systemen benutz, so sind damit alle diese Systeme kompromittiert.

2. Tutorial

Putty und Puttygen Installation/Konfiguration.

Die bei SSH standardmässig aktive Passwortabfrage ist nur eine Möglichkeit der Authentifizierung. Sicherer ist die Identifikation über asymmetrische Schlüssel, die Public-Key-Authentifizierung. Bei Putty dient das Tool PuTTY Key Generator (puttygen.exe anstelle von ssh-keygen) zum Erzeugen von RSA- (Default) oder DSA-Schlüsselpaaren.

Das Tool findet sich zwar auf der Putty-Download-Seite, hat man allerdings zuvor das vollständig Zip-Archiv heruntergeladen oder den exe-Installer verwendet, ist puttygen bereits im Windows-Starmenü unter Putty zu finden. Zum Erzeugen eines RSA-Shlüsselpaares genügt ein Klick auf die Schaltfläche Generate.

Zum Speichern des Public- und Private-Key auf dem Client stehen die beiden gleichnamigen Schaltflächen zur Verfügung. Das Speichern des Public Key ist nicht zwingend, weil der sich jederzeit aus dem privaten Schlüssel errechnen lässt. Name und Pfad sind im Windows-Dialog frei wählbar, allerdings hat sich für Putty-Schlüssel die Endung .ppk etabliert, um auf das vom Linux-Standard abweichende Format hinzuweisen. Im Menü Conversions ist es aber möglich, vorhandene OpenSSH-Keys zu importieren (bzw. Putty-Keys zu exportieren), weil Putty OpenSSH-Keys nicht akzeptiert.

:!: Den Private Key NIEMALS auf den Server ablegen und immer sicher Verwahren! :!:

Für das Übertragen des Public Keys auf den Server ist es nützlich, diesen mit der Maus im Schlüsselfeld vollständig zu markieren und mit Strg + C einfach in die Zwischenablage zu kopieren.

Loggt man sich dann mit Hilfe von Putty noch einmal konventionell (d. h. mit Benutzername und Passwort) auf dem entfernten Server ein, kann man die dortige Datei /home/$User/.ssh/authorized_keys mit einem Editor seiner Wahl bearbeiten und den Key einfach aus der Zwischenablage einfügen, was deutlich eleganter ist, als ein manuelles Übertragen via psftp.

Public-Key für Login hinterlegen

Damit zukünftig ein Login über Ihren privaten Schlüssel möglich ist, ist es erforderlich, den öffentlichen Schlüssel in Ihrem Home-Verzeichnis im Unterordner „.ssh“ in der Datei „authorized_keys“ zu hinterlegen. Dabei ist es möglich, mehrere öffentliche Schlüssel in dieser Datei zu hinterlegen, um mehreren Nutzern den Zugriff auf diesen Benutzer per SSH zu ermöglichen.

Sollte der Ordner „.ssh“ noch nicht existieren, kann er wie folgt angelegt werden:

# cd ~ # mkdir .ssh

Anschliessend müssen Sie in den Ordner „.ssh“ wechseln und Ihren öffentlichen Schlüssel in der Datei „authorized_keys“ ablegen. Sollten Sie aus dem vorherigen Abschnitt sich einen neuen Schlüssel angelegt haben, so wurde der „.ssh“-Ordner bereits für Sie erstellt und der öffentliche Schlüssel befindet sich in der Datei „id_rsa.pub“. In diesem Fall ist nur noch eine Umbenennung notwendig:

# mv id_rsa.pub authorized_keys

Anschließend müssen noch die Rechte angepasst werden:

# chmod 0700 ~/.ssh -R

Sollten der Ordner „.ssh“ und die darin befindlichen Dateien noch nicht dem Benutzer des Homeverzeichnis gehören, so müssen Sie noch die Rechte anpassen:

# chown root:root ~/.ssh -R ←- Der Benutzername „root“ muss gegebenenfalls durch den Benutzer ersetzt werden, in dessen Homeverzeichnis Sie sich befinden Anschließend sollten Sie testen, ob ein Login mit Ihrem Private-Key möglich ist. Funktioniert er nicht, ist in einem der vorherigen Schritte ein Fehler unterlaufen.

Anschließend sollten Sie testen, ob ein Login mit Ihrem Private-Key möglich ist. Funktioniert er nicht, ist in einem der vorherigen Schritte ein Fehler unterlaufen.

Putty Konfiguration 1.1

In PuTTY kannst Du Profile für Verbindungen zu Deinen zahlreichen SSH Servern erstellen. Du musst die Einstellungen also nicht noch einmal eingeben, wenn Du Dich erneut mit einem bestimmten Server verbinden möchtest.

Falls du manuel machen willst, kannst du in den rote Kaste den Host Name oder IP Adresse eingeben. Danach kannst du im Blaue Kaste und den Authentification Key eingeben in „Auth“.

SSH-Key unter Linux und macOS erstellen

Um einen SSH-Key unter Unix-Systemen wie Linux oder macOS zu erstellen, ist das sogenannte Terminal wichtig. Dabei handelt es sich um die Kommandozeile innerhalb der grafische Oberfläche des Systems. Wer Linux ohne Oberfläche nutzt, kann auch die jeweilige Shell verwenden - hier besteht kein Unterschied.

Öffnen wir einen Terminal-Fenster. Dieses finden wir in den meisten Linux-Oberflächen im Startmenü oder der Menüzeile. Unter macOS finden Sie es im Ordner /Programme/Diesntprogramme.

Unter Linux müssen Sie möglicherweise in puristischeren Distributionen noch OpenSSH installieren, macOS und die meisten Standard-Distris haben die SSH-Key-Erstellung bereits an Bord. Geben Sie zunächst den Befehl ssh-keygen -t rsa -b 4096 ein. Dadurch wird ein Schlüssel nach dem RSA-Kryptosystem mit der Länge 4096 Bit erstellt. Damit ist der Schlüssel per Brute-Force kaum zu knacken.

Der Rechner fragt jetzt, in welcher Datei der Schlüssel abgelegt werden soll. Geben Sie am besten eine neue Datei an, die eindeutig benannt ist. Die Voreinstellung in macOS ist, dass der Schlüssel sonst in der Standard-Datei landet, und das ist unübersichtlich; zumal der Ordner „.ssh“ versteckt ist. Bestätigen Sie mit der Eingabetaste.

Sie können jetzt zusätzlich für noch mehr Sicherheit eine Passphrase vergeben, das ist aber nicht zwingend nötig. Falls Sie eine Passphrase für den Key nutzen möchten, können Sie dieses eingeben und müssen es anschließend bestätigen. Andernfalls können Sie diese Option mit der Eingabetaste überspringen. Wir erstellen an dieser Stelle ein Schlüsselpaar ohne zusätzliches Passphrase.

Das war es auch schon: Das Schlüsselpaar ist erstellt und liegt in der in Schritt 3 angegebenen Datei. Diese können Sie später mit einem Text-Editor (im Terminal vi, unter macOS jeder beliebige Editor, etwa CotEditor) öffnen, um das Schlüsselpaar anzusehen und zu verwenden

3. Testing

3.1 Test 1

Testfall Nr. #1
Beschreibung Login über Putty
Vorgehen Login mit Passwort, Host/IP Adresse, mit generiertem Authentification key
Voraussetzung / Umfeld Auf Putty sollte alles korrekt gefüllt sein, Authentification Key in SSH Tab
Erwartetes Resultat Erfolgreicher Login
OK / nicht OK OK
Aufgetretene Fehler / Bemerkungen Keine
Testfall Nr. #2
Beschreibung Putty-Key manuel einrichten
Vorgehen Login mit Passwort, Host/IP Adresse, mit generiertem Authentification key
Voraussetzung / Umfeld Auf Putty sollte alles korrekt gefüllt sein, Authentification Key in SSH Tab
Erwartetes Resultat Verbindung mit Private-Key
OK / nicht OK nicht OK
Aufgetretene Fehler / Bemerkungen Problemen bei der Formatierung des Private-Key. Lösung: per Hand den Key formatieren.

4. Auswertung

Was hat funktiniert?

Wenn man alles nach Anleitung macht, sollte alles tiptop laufen und normal einloggen zu können.

Was nicht?

Den Private-Key waren nicht richtig Formatiert und somit konnte ich nicht einloggen.

Was waren die grössten Herausforderungen/Probleme?

Private-Key waren nicht formatiert.

Wie habe ich die Probleme gelöst?

Manuel den Key formatiert.

5. Quellenverzeichnis

https://www.windowspro.de/thomas-drilling/putty-anmeldung-ueber-public-key-authentifizierung https://www.youtube.com/watch?v=dKc6Q23pang https://www.heise.de/tipps-tricks/SSH-Key-erstellen-so-geht-s-4400280.html#SSH-Key%20unter%20Linux%20und%20macOS%20erstellen

de/technische-dokumentationen/tutorials/ssh_login_mit_keys_ueber_putty.txt · Zuletzt geändert: 2023/11/16 14:28 von 127.0.0.1