Mit Putty und SSH Key auf einen Linux Server zugreifen Verwendete Rechner: Client: Windows XP Professional, Putty 2007 - Version 8.2 Server: Ubuntu 10.10 Maverick Meerkat / OpenSSH Vorbereitungen auf dem Client Rechner Starten der puttygen.exe und generieren des Schlüsselpaares - Generate Für die Verschlüsselung wurde gewählt: SSH-2 RSA / 2048 bits Page 1 Workshop: Mit Putty und SSH auf einen Linux Server zugreifen Zintl, Peter
Im nächsten Schritt kann nun optional ein Passwort (Key passphrase) eingegeben werden. 1) Generieren des öffentlichen Schlüssels: Nach Eingabe des Passwortes (optional) auf Save public key klicken, einen beliebigen Namen auswählen (im Beispiel win_public), und die Datei auf dem Rechner in einem beliebigen Ordner im Beispiel im zuvor angelegten Ordner C:\Progs\putty\keys speichern. 2) Generieren des privaten Schlüssels: Auf Save private key klicken, einen beliebigen Namen auswählen (im Beispiel win_private) und die Datei auf dem Rechner in einem beliebigen Ordner im Beispiel im zuvor angelegten Ordner C:\Progs\putty\keys speichern. Page 2 Workshop: Mit Putty und SSH auf einen Linux Server zugreifen Zintl, Peter
Das erzeugte Schlüsselpaar in der Ansicht im Windows Explorer Um den öffentlichen Schlüssels (win_public) auf den Server zu übertragen, kopieren wir diesen auf einen USB Stick Vorbereitungen auf dem Server Vorraussetzung ist, das auf dem Server bereits openssh installiert ist und gestartet wurde. Die Datei sshd_config muß editiert werden. Sie ist zu finden (Ubuntu Version 10.10) im Verzeichnis /etc/ssh/ Auf einem Server steht überlicherweise keine GUI zur Verfügung, die Datei kann z.b. mit dem Editor vim bearbeitet werden (root Rechte vorrausgesetzt) Page 3 Workshop: Mit Putty und SSH auf einen Linux Server zugreifen Zintl, Peter
Nach dem Anpassen der Datei sshd_config sieht diese dann wie folgt aus (Kommentare und Leerzeilen ausgeblendet): peter@userv64:/etc/ssh$ less sshd_config grep -v ^# grep -v ^$ Port 10003 Protocol 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key UsePrivilegeSeparation yes KeyRegenerationInterval 3600 ServerKeyBits 768 SyslogFacility AUTH LogLevel INFO LoginGraceTime 120 PermitRootLogin no StrictModes yes AllowUsers peter RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys IgnoreRhosts yes RhostsRSAAuthentication no HostbasedAuthentication no PermitEmptyPasswords no ChallengeResponseAuthentication no PasswordAuthentication no AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server Nun muss der öffentliche Schlüssel (win_public) vom USB Stick auf den Server kopiert werden. Nach dem Einstecken des USB Sticks wird dieser automatisch im Verzeichnis /media gemountet. - In das Verzeichnis wechseln, wo sich der öffentliche Schlüssel befindet, bei mir ist das. peter@userv64:/media/2gb/keys$ ls -l insgesamt 4 -rw-r--r-- 1 peter peter 464 2011-03-20 09:23 win_public - Dann die Datei in ein beliebiges Verzeichnis auf den Server kopieren peter@userv64:/media/2gb/keys$ cp win_public /home/peter/keys/ Als nächstes muß die Datei in ein für open-ssh verständliches Format gebracht und dann in die Datei authorized_keys im Verzeichnis /home/<user>/.ssh geschrieben werden. Page 4 Workshop: Mit Putty und SSH auf einen Linux Server zugreifen Zintl, Peter
Das geht am besten mit dem folgenden Befehl: peter@userv64:~/keys$ ssh-keygen -if win_public >> home/peter/.ssh/authorized_keys Das Verzeichnis sieht dann so aus: peter@userv64:~/.ssh$ ls l insgesamt 8 -rw-r--r-- 1 peter peter 377 2011-03-20 10:17 authorized_keys -rw-r--r-- 1 peter peter 442 2010-12-08 23:40 known_hosts Auf authorized_keys soll nur der SSH user Lese- und Schreibrechte haben, also müssen die Berechtigungen entsprechend angepasst werden. peter@userv64:~/.ssh$ chmod 600 authorized_keys peter@userv64:~/.ssh$ ls l insgesamt 8 -rw------- 1 peter peter 377 2011-03-20 10:17 authorized_keys -rw-r--r-- 1 peter peter 442 2010-12-08 23:40 known_hosts Nun ist der öffenliche Schlüssel für den Gebrauch fertig, wir starten den openssh deamon neu peter@userv64:~/.ssh$ sudo /etc/init.d/ssh restart [sudo] password for peter: * Restarting OpenBSD Secure Shell server sshd [ OK ] peter@userv64:~/.ssh$ Auf dem Client Rechner Wir starten Putty und Wählen die Category SSH / Auth Page 5 Workshop: Mit Putty und SSH auf einen Linux Server zugreifen Zintl, Peter
Dann gehen wir in die Category Session, geben dort die IP Adresse des Servers ein und den Port, den wir zuvor in der sshd_config auf dem Server eingetragen haben. Page 6 Workshop: Mit Putty und SSH auf einen Linux Server zugreifen Zintl, Peter
Die Security Meldung mit Ja bestätigen Wenn alles korrekt konfiguriert ist, können wir nun die Passphrase eingeben und sind mit dem Server verbunden. Page 7 Workshop: Mit Putty und SSH auf einen Linux Server zugreifen Zintl, Peter