Skip to content

PuTTY und "Server refused our key"

Ich will auch von Windows Rechnern (ja, gibt's bei mir zu Hause auch) auf Linux Server zugreifen. Ich mache das mit SSH und einem RSA-Schlüsselpaar. Als Client-Software verwende ich PUTTY. Um ein Schlüsselpaar zu erstellen, startet man das Programm "PuTTY Key Generator" (puttygen.exe). Mit einem Mausklick auf den Button "Generate" und ein wenig Mausgeschubbse generiert man sich die Schlüssel. Mit den beiden Buttons "Save public key" und "Save private key" werden die Schlüssel auf die Festplatte geschrieben. Der öffentlichen Schlüssel muss nun auf den Server kopiert werden und dort in die Datei ~/.ssh/authorized_keys überführt werden.

Hier bin ich nun in die Falle getappt. Denn nach dem Einfügen des öffentlichen Schüssels in besagte Datei und einem ersten Anmeldeversuch meldet mir PuTTY "Server refused our key". Was war passiert?

Der öffentliche Schlüssel in der Datei, die aus dem PuTTY Key Generator erstellt worden ist hat folgendes Format.

---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20110416" AAAAB3NzaC1yc2EAAAABJQAAAIB5yJ/HodElR8lAzKQGrgfNyG9s3KwCGVR5/8l0 6d9tjCdcwDqmJxL6jBlJhY6BdZHv8m8LMXmI/E9lJl8kkms3QJGUqmHMYVv1tf2w TMXeWttP1oLDWHgg7txId5ewG2vSFLKShLeuXykPaQHzYUwBFEzWmMIh8VvjxgC5 9tsTlQ== ---- END SSH2 PUBLIC KEY ----

Die ersten beiden sowie die letzte Zeile kann schon mal gelöscht werden. Ebenfalls muss der Schlüssel in eine Zeile gepackt werden. Dass sieht dann so aus: (In vim macht man das mit der Tastenkombination Shift+J / Ausserdem nicht vergessen, die Leerschläge aus dem Key zu löschen!!)

AAAAB3NzaC1yc2EAAAAB.........WmMIh8VvjxgC59tsTlQ== (gekürzt)

Ob der String nun wirklich bloss aus einer Zeile besteht, kann überprüft werden, indem in vim die Zeilennummerierung mit ":set number" eingeschaltet wird.

Zum Schluss fügt man an den Anfang der Zeile, in unserem Fall, "ssh-rsa" ein. Jetzt kann der Schlüssel in diesem Format auf dem Server in die Datei authorized_keys eingetragen werden.

ssh-rsa AAAAB3NzaC1yc2EAAAAB.........WmMIh8VvjxgC59tsTlQ== (gekürzt)

Jetzt steht einer erfolgreichen Verbindungsaufnahme mit dem Server nichts mehr im Weg. Natürlich bin ich da nicht selber draufgekommen. Wer sich den Original-Artikel anschauen möchte findet ihn hier

Wenns mal länger dauert

Meinen Homeserver administriere ich via ssh von meinem Desktop-Rechner aus. Mich hat gestört, dass ich jeweils bis zu 15 Sekunden gewartet habe, bis ich die Shell vom Server zu Gesicht bekommen habe. Heute habe ich mich des Problems angenommen und schon nach kurzer Zeit via Google eine Lösung gefunden.

Auf dem Server muss in der Konfigurations-Datei /etc/ssh/sshd_config der Wert UseDNS no gesetzt werden. Damit wird Reverse DNS Lookup ausgeschaltet und schon flutscht das Login.