Mit Putty ohne Passwort auf Ubuntu zugreifen

Es gibt mehrere Gründe, warum eine SSH Verbindung zu einem Server aufgebaut werden muss.  Bei mir war es auf der Arbeit notwendig, um ein Backup per cwrsync auf einen Server zu automatisieren.  Natürlich sollte dabei keine Passworteingabe notwendig sein, damit es als Autostart komplett im Hintergrund ablaufen konnte. Da ich mehrere Server betreue, war es mir jedoch zu nervig, jedes Mal das Passwort bei der Verbindung zu einem Server eingeben zu müssen, wenn ich per SSH darauf arbeiten wollte. Wie ich dies vereinfacht habe, möchte ich euch hier zeigen.

Die Bedingungen

Betriebssystem: Ubuntu Linux

SSH Client: PuTTY

SSH Key Tool: PuTTYgen

SCP Tool: WinSCP

Um unter Windows Zugriff auf einen Linux Server zu bekommen und auf diesem per SSH arbeiten zu können, gibt es zwei bekannte und sehr nützliche Tools. Putty und WinSCP.

Bei der „normalen“ Anmeldung muss immer ein Benutzername und das dazugehörige Passwort eingegeben werden. Damit dies einfach auch ohne eine Eingabe vollzogen werden kann, gibt es die Authentifizierung über Public-Keys. Einfach ausgedrückt werden hierbei gleichzeitig zwei zusammenhängende Dateien erzeugt. Eine private und eine öffentliche Key-Datei. Die öffentliche „public“ – Datei wird auf dem Zielsystem, also in meinem Fall meinem virtuellen Ubuntu-Server abgelegt. Die private Datei kommt auf jenes System, von dem man aus zugreifen möchte. Bei mir also mein Windows 7 . Eine erfolgreiche Verbindung kommt also nur zustande, wenn die öffentliche und private Datei zusammenpassen.

Vorgehensweise

Zuerst habe ich mich an meinem Ubuntuserver mit meinem Benutzernamen angemeldet.

Jetzt gibt man folgenden Befehl ein:

ssh-keygen -t dsa

Es erscheint eine Aufforderung, den Speicherort für die Key-Dateien anzugeben:

Generating public/private dsa key pair.
Enter file in which to save the key (/home/netzonline/.ssh/id_dsa):

Soll der Ort nicht geändert und der vorgeschlagenen Pfad beibehalten werden, reicht es einfach die Eingabetaste zu drücken. Jetzt kann für die Verwendung der Key-Dateien ein Passwort eingegeben werden. Wer kein Passwort verwenden möchte, kann mit drücken der Eingabetaste wieder fortfahren:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Abschließend werden die Orte angezeigt, an denen die Key-Dateien abgelegt wurden:
Your identification has been saved in /home/netzonline/.ssh/id_dsa.
Your public key has been saved in /home/netzonline/.ssh/id_dsa.pub.

Öffentliche Key-Datei: id_dsa.pub
Private Key-Datei: id_dsa

Der Inhalt der Datei id_dsa.pub muss jetzt zur Datei authorized_keys hinzugefügt werden.

Dazu wechseln wir in das Verzeichnis des Benutzers. Bei mir also z.B.:

cd /home/netzonline/.ssh

Die Dateien werden mit folgendem Befehl zusammengeführt. Ist die Datei authorized_keys noch nicht vorhanden, wird sie automatisch angelegt:

cat id_dsa.pub >> authorized_keys

Jetzt können wir z.B. mit Hilfe von WinSCP die Datei id_dsa auf unseren Windows PC herunterladen. Dazu gibt man nur den Hostnamen/IP, den Benutzernamen und das Passwort ein und wechselt in den .ssh Ordner des eigenen home-Verzeichnisses.

WinSCP_02

Die heruntergeladenen Datei öffnen wir mit dem Programm PuTTYgen. Dazu starten wir das Programm und klicken auf „Load“.

PuTTYgen

Damit die id_dsa ausgewählt werden kann, muss in dem Feld „PuTTY Private Key Files (*.ppk)“ jetzt der Eintrag „All files (*.*)“ ausgewählt werden. Wenn alles funktioniert, sollte folgende Meldung erscheinen:

PuTTYgen_01

Der private Key wurde somit in PuTTYgen erfolgreich importiert und kann jetzt in dem für PuTTY lesbaren *.ppk Format abgespeichert werden. Dazu muss einfach auf die Schaltfläche „Save privat key“ geklickt werden. Besitzt die Datei kein Passwort, erscheint eine weitere Hinweismeldung:

PuTTYgen_02

Mit der Bestätigung „Ja“ kann die Datei unter einem frei wählbaren Namen abgespeichert werden.

PuTTY für automatischen Login vorbereiten

Wir starten PuTTY und tragen zuerst im Feld „Host Name (or IP address)“ den Benutzernamen und den Host in folgendem Format ein:

benutzername@host

Das wäre z.B. bei meinem virtuellen Server im Netzwerk also:

netzonline@192.168.1.40

Danach wechseln wir in der linken Spalte zu:

Connection -> SSH -> Auth

und klicken auf die Schaltfläche „Browse…“

Jetzt müssen wir nur noch die vorher mit PuTTYgen erstellte ppk Datei auswählen. Damit wir die Einstellungen speichern können, wechseln wir in der Linken Spalte wieder ganz oben zu „Session“ und tragen im Feld „Saved Sessions“ einen eindeutigen Namen für unsere Verbindung ein. Mit „Save“ werden die Einstellungen für die Session gesichert.

Beim nächsten Start von PuTTY muss einfach nur das Profil ausgewählt werden. Mit „Load“ werden die Einstellungen geladen. Sobald wir auf „Open“ klicken wird das Terminalfenster geöffnet und wir sind ohne eine weitere Eingabe mit dem Benutzer auf dem Zielrechner angemeldet.

Es ist auch möglich eine in PuTTY abgespeicherte Session direkt zu starten. Dazu legt man eine Verknüpfung an und trägt als Ziel die putty.exe ein und fügt folgende Parameter an: -load „Sessionname“. Als kleines Beispiel, wenn die putty.exe direkt unter C: liegt und ich eine Session mit dem Namen „netzonline“ starten möchte, würde ich Folgendes eintragen:

C:\putty.exe -load "netzonline"

Übrigens kann man die ppk Datei auch in WinSCP benutzen.

Über Torsten
Mein Name ist Torsten. Ich hoffe der Artikel hat dir gefallen und über ein Feedback von dir würde ich mich sehr freuen.

4 Kommentare zu Mit Putty ohne Passwort auf Ubuntu zugreifen

    • Vielleicht sollte man noch erwähnen dass man den privaten Schlüssel nach dem Download auf dem Server besser löscht.

Kommentare sind deaktiviert.