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
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
Dirk Deimeke am :
Du kannst auch einfach den Schlüssel aus dem PuTTYgen-Fenster kopieren und einfügen. Der Teil ist überschrieben mit "Public Key for pasting" oder so ...
hampa am :
@Dirk: Vielen Dank für den Hinweis. Die Überschrift über der genannten Stelle lautet: "Public key for pasting into OpenSSH authorized_keys file:"
An dieser Stelle bewahrheitet sich sich wieder einmal der Satz: "Wer lesen kann ist klar im Vorteil".
hampa am :
Von Stefan (encbladexp) habe ich gestern via identi.ca den Hinweis bekommen, dass er mittels cygwin via SSH von Windows-Rechner auf Linux-Server zugreift. Ich habe das aufgegriffen und ausprobiert. Ich muss sagen, dass dies eine sehr elegante Lösung ist und sich eher nach Shell anfühlt. Vielen Dank!
Dirk Deimeke am :
Ich mache es genauso wie Stefan, ich habe MinTTY unter Cygwin installiert, damit hat man das Copy und Paste Verhalten von PuTTY und die Flexibilität von Cygwin.
Frank am :
Falls es nicht klappt, auch noch sicherstellen, dass das home-dir chmod 755 ist, und das .ssh dir, in dem das authorized_keys liegt, chmod 700. War bei mir auf jeden Fall nötig, vorher kam die Meldung trotz korrekt formatieretem public key.
John am :
Hallo,
besten Dank, genau den Fehler habe ich auch gemacht
Ich habe dann nochmal google gefragt und herausgefunden das der key auf dem server in das richtige Format konvertiert werden kann, mit folgendem Befehl:
ssh-keygen -i -f user.pub > user_openssh.pub
Dann muss man nicht selbst Hand anlegen Des Weiteren musste ich auch noch die Berechtigung wie folgt setzen
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Beste Grüße John
Mario Lukac am :
Man kann auch direkt am Server die keys generieren, und sie zu den authorized keys hinzufügen:
ssh-keygen -C "username@sub.domain.com"
ssh-copy-id -i ~/.ssh/id_rsa
Danach überträgt man das keypair (idrsa + idrsa.pub) auf seinen lokalen Rechner und importiert sie in Putty (Menü "Conversions" -> "Import Key").
Thomas am :
Vielen Dank. Fast 10 Jahre später und der Tipp hilft immer noch
Vision am :
Hallo erstmal.
Eine super Anleitung !! Ich das schon seit so vielen Jahren.....
Ich benutze WinSCP um mich auf meine Server einzuloggen.
Ich habe bei erstellen des Keys bzw beim speichern noch eine Passphrase angegeben, die ich auch brav beim Login abgefragt wird.
Wenn ich mich mit WinSCP einlogge und danach über WinSCP Putty starte , fragt er trotzdem nach dem Userpasswort. Was kann ich tun damit das Passwort an Putty übergeben wird ?
Auf den alten Servern musste ich das Passwort nicht nochmal eingeben.
LG
Vision am :
Ich habe den Fehler gefunden. Putty war zu alt für die neuen keys. Einfach die altuelle Putty v0.76 benutzen und schon funktioniert es wieder.