Dieses HowTo erklärt, wie man ein private/public Key Paar mit Putty generiert und verwendet um sich auf einem entfernten Server mit SSH unter Benutzung des Programmes PuTTY einzuloggen. PuTTY ist ein SSH Client Programm, das es für Windows- als auch für Linux-Systeme zum herunterladen gibt . Mit Key-basierte SSH Logins kann der standartmässige Benutzername / Passwort Login Vorgang auf einem Linux Server deaktiviert werden, was bedeutet, dass sich nur User mit einem gültigen private / public Key Paar anmelden können. Dadurch ist der Server besser vor brute-force Attacken geschützt.
Arbeitsschritte:
Zuerst müssen die Programme auf dem Windows Rechner installiert werden. Dazu müssen die ausführbaren Dateien (.exe) heruntergeladen werden. Die drei Anwendungen brauchen nicht installiert werden, da sie Standalone Programme sind.
Lade folgende Dateien von der PuTTY Download Page und speichere sie auf Deinem Windows Rechner:
PuTTY kann viele Profile für Verbindungen zu zahlreichen SSH Servern speichern.
Erneut zum Menüpunkt Session gehen.
Unter Saved Sessions einen Namen für das Profil eingeben,
z.B. 192.168.2.1 oder irgendeine anderer Name…
Nun auf Save klicken:
Wenn PuTTY das nächste Mal benutzt wird, braucht nur das entsprechende Profil aus der Saved Sessions Textarea ausgewählt werden und mit Load/Open geöffnet werden.
Nun kann mit dem SSH Server eine Verbindung aufgebaut werden, indem einfach auf Open geklickt wird.
Bei der ersten Verbindung zum Linux/Unix Server, erscheint eine Sicherheitswarnung. Das passiert, da das Putty Programm den Host Key des Servers noch nicht kennt.
Es ist also entgegen der Warnung schon sicher auf Yes zu klicken
Der Benutzernamen ist ja vorher gespeichert (root) worden, mit dem wir uns in unseren Profileinstellungen verbinden, deshalb muß ehr hier nicht eingegeben werden
Es muss nur dass Passwort des Benutzers eingeben werden
Das ist der “standart" Weg sich anzumelden, d.h. mit einem Usernamen und einem Passwort. Wenn jemand anderes jedoch den Benutzernamen und das Passwort kennt, kann er sich jedoch genauso anmelden.
Wenn also ein schwaches Passwörter verwendet wird oder Sie Opfer einer brute-force Attacke sind, kann das ein Problem darstellen. Dies sollte man ändern.
PuTTYgen kann man verwenden, um ein private/public Key Paar zu generieren. Man startet es mit einem Doppelklick
und wählt SSH-2 RSA unter Type of key to generate und 1024 als die Number of bits in a generated key.
Anschließend auf auf Generate klicken:
Nun den Cursor über das leere Feld bewegen während der Erstellung des Keys um eine gewissen Zufälligkeit zu erzeugen die für das Erstellen benötigt wird:
Jetzt klickt man auf Save private key. (Beachte: Wenn dieser Key gelöscht wird und Username/Passwort Logins deaktivert sind, kann man sich nicht mehr anmelden!)
Es kann wieder ein beliebiger Dateinamen auswählt werden, aber dieses Mal muss die Endung .ppk sein:
Abschließend Kopiert man den public Key aus dem PuTTYgen Fenster:
Nun meldet man sich wieder auf dem Linux Server an (immer noch mit dem Benutzernamen und Passwort) und fügt den public Key in die Datei ~/.ssh/authorized_keys2 (in einer Zeile!) wie folgt ein:
mkdir ~/.ssh
chmod 700 ~/.ssh
vi ~/.ssh/authorized_keys2
ssh-rsa CABBB9NzaC1yc4EB[...]Lg6wh50zMuYE5Lzu8ZudnP3dS= myname@example.com
Diese Datei darf nur von diesem Benutzer beschreibbar und lesbar sein, also ändern wir die Datei Rechte
chmod 600 ~/.ssh/authorized_keys2
Nun startet man den Linux Server neu mit:
reboot
Nun startet man PuTTY erneut und ladet das Profil des Linux Servers (192.168.2.1):
Jetzt geht man im Menü auf SSH/Auth und klickt auf Browse:
In dem aufgehenden Fenster navigiert man zu dem vorher erstellten privaten Key und wählt diesen aus.
Nun erneut auf Session gehen und auf Save klicken:
Jetzt haben wir den private Key an unser 192.168.2.1 PuTTY Profil angehängt.
Nun ist alles für den ersten Key-basierten Login auf unserem SSH Server getan. Mit Kick auf Open öffnet sich die Verbindung:
Nun wird wie man sehen kann der erstellte Public Key für die Authentifizierung verwendet und man wird nach dem Passwort gefrage (welches vorher festgelegt wurde):
Bis jetzt kann man sich mit dem private/public Key Paar und immer noch mit Username/Passwort Logins anmelden. Wenn jemand also keinen private Key seiner PuTTY Session hinzufügt, wird er nach einem Benutzernamen und Passwort gefragt. Um nun also eine größere Sicherheit zu erziehlen, müssen Benutzernamen/Passwort Logins deaktiviert werden (das darf man nur tun, wenn man sicher weiß, dass Key-basierte Logins funktionieren, denn wenn sie das nicht tun und Du Benutzername/Passwort Logins deaktivierst, hat man ein großes Problem…).
Um Benutzername/Passwort Logins zu deaktivieren, müssen wir die sshd Konfigurationsdatei modifizieren. Auf Debian/Ubuntu Systemen ist das /etc/ssh/sshd_config. Du solltest Protocol auf 2 (1 ist unsicher und sollte nicht verwendet werden!), PasswordAuthentication auf no und UsePAM auf no (oder die UsePAM Zeile auskommentieren) setzen, z.B. wie folgt:
vi /etc/ssh/sshd_config
[...] Protocol 2 PasswordAuthentication no UsePAM no [...]
Starte sshd dann neu:
/etc/init.d/ssh restart
Wenn man jetzt eine PuTTY Session öffnet, ohne dass ein private Key angehängt ist, dürftest man nicht mehr in der Lage sein sich anzumelden.
Wenn nun Key-basierten Login verwendest wird, muss immer noch das Key Passwort angeben werden. Das kann nervig sein, wenn mehrmals am Tag mit dem SSH Server verbunden wird. Glücklicherweise kann man Pageant das Passwort mitteilen und Pageant wird dann das Passwort bereitstellen, wenn man sich auf dem SSH Linux Server anmeldet
Pageant wird gestartet indem auf dessen ausführbare Datei geklickt wird (Doppelklick)
Danach solltest Du in der Taskbar sehen, dass Pageant läuft:
Klicke nun auf das Pageant Icon (Doppelklick) in der Taskbar. Folgendes Fenster erscheint. Klicke auf Add Key:
Navigiere in dem Dateisystem zum Speicherort und wähle den private Key aus:
Gib dann das Passwort für den jeweiligen Private Key ein
Der Key wird nun in der Pageant Key Liste aufgelistet. Zum Beenden nun auf auf Close klicken
Solange Pageant im Taskbar läuft, kann man sich nun auf dem Linux Server anmelden, ohne das Passwort eingeben zu müssen – das erledigt jetzt Pageant:
Wenn Pageant beendet wrid, vergisst es alle Keys. Wenn Pageant also das nächste Mal gestartet wird, müssen alle Du Keys erneut hinzufügt werden.