Putty unter Windows installieren und mit SSH-Keys arbeiten
Viele Webserver laufen mit dem Betriebssystem Linux. Während in der Windowswelt meist grafische Tools wie Remote-Desktop (RDP) oder VNC verwendet werden um Server aus der Ferne zu administrieren, kommt unter Linux meist das textbasierte SSH-Protokoll zum Einsatz. Möchten Sie von Ihrem Windows-PC aus z.B. Änderungen an Ihrer Homepage auf einem Linuxserver vornehmen, können Sie die kostenlose Software Putty verwenden.
Was sind SSH-Keys?
Bei den meisten Anbietern ist es möglich sich mit Benutzername und Passwort anzumelden. Das ist der einfachste Weg wenn Sie nur einen SSH-Zugang haben. Bei mehreren Webseiten ist der Aufwand mit der Verwaltung der Zugangsdaten entsprechend höher, was dazu führt dass man diese oft in einer Datei bzw. Passwortmanager abspeichert und dann nochmals in den benötigten Programmen hinterlegt. SSH-Keys sind eine gute Möglichkeit die Verwaltung zu vereinfachen und Zeit zu sparen, da sie wie ein Generalschlüssel funktionieren. Bereits ein Schlüssel ist ausreichend um alle Webseiten damit zu verwalten.
Technisch bestehen SSH-Keys aus einem privaten und einem öffentlichen Schlüssel. Der private Schlüssel muss geheim gehalten werden, existiert somit nur auf Ihrem PC und sollte durch ein Passwort geschützt werden. Der öffentliche Schlüssel wird auf allen Servern hinterlegt, die man mit diesem Schlüssel verwalten möchte. Der öffentliche Schlüssel heißt so weil niemand etwas damit anfangen kann, er darf also "öffentlich" auf allen Servern genutzt werden.
Beim Login überprüft der Server ob Sie den passenden privaten Schüssel zu dem am Server hinterlegten öffentlichen Schlüssel besitzen. Dieses Verfahren wird bereits seit Jahrzehnten verwendet und gilt als sehr sicher. Dabei ist nicht nur der Login-Prozess abgesichert, auch alle Verbindungen sind verschlüsselt, d.h. die Befehle oder Daten die Sie über SSH transportieren werden nicht im Klartext gesendet.
Videoanleitung zur Installation und Konfiguration von Putty
Klicken Sie auf das Video um die Anleitung zu starten oder überspringen Sie diesen Abschnitt und lesen Sie die bebilderte Anleitung.
Putty installieren
Putty können Sie kostenlos von der Seite des Autors herunterladen: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Achten Sie darauf die richtige Version für Ihr Windows zu installieren: 32-bit für ältere Versionen und PCs die maximal 4 GB RAM haben, andernfalls die 64-bit Version. Prinzipiell sollte man die heruntergeladenen Dateien mittels Prüfsummen (z.B. SHA256) oder Signaturen (GPG) überprüfen, um sicherzustellen dass das Programm nicht manipuliert wurde. Wie man diese Daten überprüft beschreiben wir in einem anderen Artikel. Putty bietet sowohl GPG-Signaturen an (signature) als auch Prüfsummen (Checksum files am Ende der Seite).
Öffnen Sie nun die heruntergeladene .msi Datei mit dem Windows Explorer und folgen Sie dem Installationsprogramm.
SSH-Key generieren
Um einen neuen SSH-Key zu generieren, starten Sie das Programm PUTTYgen:
Nehmen Sie nun die folgenden Einstellungen vor:
- 1) Parameter
Erzeugen Sie einen RSA Schlüssel mit einer Stärke von 4096 Bit. Soll der Key längere Zeit verwendet werden, sind 4096 Bit sicherer als die vorgeschlagenen 2048 Bit. - 2) Passwort für den neuen Schlüssel
Denken Sie sich ein Passwort aus und geben Sie es hier ein. Achtung: dieser Schlüssel soll alle SSH-Zugänge verwalten, bitte setzen Sie ein sicheres Passwort. - 3) Schlüssel erzeugen
Klicken Sie auf Generate um ein neues Schlüsselpaar zu erzeugen. Bewegen Sie danach die Maus auf dem Bildschirm um Zufallsdaten zu erzeugen, die in die Berechnung des Schlüssels mit einfließen. - 4) Schlüssel speichern
Klicken Sie auf Save public key und speichern Sie den öffentlichen Schlüssel in einer Datei (z.B. id_rsa.pub). Klicken Sie danach auf Save private key und speichern Sie den privaten Schlüssel z.B. in id_rsa.ppk - 5) OpenSSH Schlüssel sichern
Kopieren Sie den gesamten Text (ssh-rsa ...) aus dem Bereich "Public key for pasting into OpenSSH authorized_keys file" in die Zwischenablage. Dies ist Ihr öffentlicher Schlüssel im OpenSSH Format. Er enthält die gleichen Daten wie der öffentliche Schlüssel aus Schritt 4), nur in einer angepassten Form für Linuxserver. Kopieren Sie den öffentlichen Schlüssel aus der Zwischenablage in eine Datei und speichern Sie. Anschließend muss diese Ihrem Provider übermittelt werden: vielleicht gibt es ein Webinterface über das Sie die Datei selbst hochladen können, alternativ schicken Sie diese per E-Mail. Da es sich um den öffentlichen Schlüssel handelt, entsteht hierbei kein Sicherheitsproblem. Nachdem der Schlüssel auf dem Server in die Datei ~/.ssh/authorized_keys eingetragen wurde, können Sie Ihre erste SSH-Verbindung herstellen.
SSH-Verbindung in Putty einrichten
Der Schlüssel für die SSH-Verbindung ist erzeugt und vom Provider am Server hinterlegt. Starten Sie nun Putty um die Verbindung einzurichten:
Falls noch nicht ausgewählt, klicken Sie auf die Kategorie Session bei 1). Geben Sie dann rechts im rot markierten Bereich den Servernamen (auch Hostname genannt) oder eine IP-Adresse ein, die Ihnen vom Provider mitgeteilt wurde. Achten Sie darauf, dass Connection type auf SSH steht. Der Port ist 22 - manche Provider weichen hier vom Standard ab und vergeben eine andere Portnummer.
Wählen Sie im nächsten Schritt in der linken Spalte die Kategorie Connection 〉 Data 2) aus. Tragen Sie im rot markierten Bereich rechts oben unter Auto-login username den Benutzernamen ein, den Sie von Ihrem Provider bekommen haben. Sie können diesen Schritt auch überspringen, dann wird der Benutzername bei jedem Login von Putty abgefragt.
Wählen Sie als nächstes in der linken Spalte die Kategorie Connection 〉 SSH 〉 Auth 3) aus. Klicken Sie rechts im rot markierten Bereich unter Private key file for authentication auf Browse und wählen Sie dort die Datei mit dem privaten Schlüssel aus, den Sie zuvor generiert haben (id_rsa.ppk).
Wählen Sie in der linken Spalte wieder die Session 4) Kategorie aus, in der Sie zu Beginn schon den Servernamen hinterlegt haben. Tragen Sie im rot markierten Bereich der rechten Spalte unter Saved Sessions erneut den Servernamen oder die IP-Adresse ein und klicken Sie auf Save 5). Damit werden alle Einstellungen für diesen Server gesichert, so dass Sie eine neue Verbindung einfach durch Auswahl dieses Eintrags starten können.
SSH-Verbindung herstellen
Wählen Sie die im letzten Schritt neu angelegte Session aus und klicken Sie auf die blau umrandete Schaltfläche Open. Putty startet jetzt die SSH-Verbindung mit den zuvor gespeicherten Daten - Servername, Benutzername, Private key.
Achtung: wird eine Verbindung zum ersten Mal aufgebaut, kennt Putty den neuen Server noch nicht. Deswegen wird der Fingerabdruck vom öffentlichen Schlüssel des Servers in einem neuen Fenster eingeblendet. Diesen muss man erst bestätigen bzw. akzeptieren. Diese Sicherheitsvorkehrung dient dazu, den Server in Zukunft eindeutig zu identfizieren. Da sich der Fingerabdruck in der Regel nicht ändert, sollte man bei einer entsprechenden Warnung vorsichtig sein. Das kann legitime Gründe haben, wie z.B. der Umzug des Webspaces auf einen anderen Server oder die komplette Neuinstallation eines Servers. Theoretisch wäre auch ein Angriff möglich bei dem der Datenverkehr auf einen anderen Server umgeleitet wird. Sicherheitshalber können Sie den Fingerabdruck des Servers bei Ihrem Provider erfragen und abgleichen oder SSHFP-Records via DNS abfragen, soweit diese hinterlegt wurden. Mit einem Klick auf ja wird die SSH-Verbindung hergestellt.
Putty fragt nun noch nach dem Passwort für Ihren privaten Schüssel, das Sie bei der Erzeugung des Schlüsselpaars mit PUTTYgen vergeben haben. Danach ist die SSH-Verbindung hergestellt und Sie können den Server steuern.
Automatische Logins
Sie fragen sich vielleicht was passiert wenn Sie bei der Erzeugung der Schlüssel kein Passwort setzen. In dem Fall werden SSH-Verbindungen ohne weitere Eingabe hergestellt. Das kann z.B. für Skripting-Zwecke verwendet werden. Da der Schlüssel aber auf vielen Servern verwendet wird, sollte er mit einem Passwort geschützt werden. Immerhin muss man sich nur dieses eine Passwort merken, nicht eines pro Server. Falls das dennoch zu unbequem ist kann man einen ssh-agent nutzen. Dieses Software hält den Schlüssel nach Eingabe des Passworts im Speicher, so dass alle Programme, die mit dem ssh-agent umgehen können, bei weiteren Verbindungen nicht mehr nach dem Passwort fragen müssen. Erst wenn der Schlüssel vom ssh-agent entfernt oder dieser neu gestartet wird, muss das Passwort erneut eingegeben werden.Software für SSH-Keys
Mit Putty können Sie mit einem Linuxserver über eine sichere Leitung kommunizieren und entsprechende Befehle senden. Es gibt jedoch noch weitere Programme die mit SSH-Keys umgehen können und z.B. den Dateiupload via SCP oder SFTP erlauben.
- WinSCP / Anleitung mit SSH-Keys (englisch)
Kopieren Sie Dateien ähnlich wie im Windows Explorer über die Protokolle SCP oder SFTP1 - FileZilla
Auch Filezilla kennt das SFTP-Protokoll über SSH SFTP Howto mit SSH-Keys (englisch)
1 SCP (secure copy) ist ein älteres Protokoll mit dem man Dateien über SSH transferieren kann. SFTP ist ein neueres Protokoll für den gleichen Zweck, das FTP-Verbindungen über SSH erlaubt. SFTP darf nicht mit FTPS/FTP mit SSL verwechselt werden: SFTP läuft über SSH, FTPS über reine FTP-Server wie vsftpd oder proftpd und verwendet dabei eine SSL/TLS-Verschlüsselung ähnlich Webservern, die Webseiten über https ausliefern.