Ich versuche, die SSH-Authentifizierung mit Schlüsseldateien anstelle von Benutzername / Passwort einzurichten. Der Client ist eine Windows-Box, auf der PuTTY ausgeführt wird, und der Server ist ein Ubuntu 12.04 LTS-Server.
Ich lud puttygen.exe herunter und ließ es ein Schlüsselpaar erzeugen. In /etc/ssh/sshd_config
ich habe diese Zeile:
AuthorizedKeysFile %h/.ssh/authorized_keys
In der öffentlichen Schlüsseldatei meines Kunden heißt es:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "[email protected]"
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAr3Qo6T5XU06ZigGOd3eKvfBhFLhg5kWv8lz6
qJ2G9XCbexlPQGanPhh+vcPkhor6+7OmB+WSdHeNO652kTofnauTKcTCbHjsT7cJ
GNrO8WVURRh4fabknUHPmauerWQZ6TgRPGaz0aucU+2C+DUo2SKVFDir1vb+4u83
[email protected]
---- END SSH2 PUBLIC KEY ----
Ich habe den Teil von "ssh-rsa AAA" nach "[email protected]" kopiert und in die Datei ~/.ssh/authorized_keys
auf meinem Server (in meinem eigenen Ordner) geschrieben. In PuTTY habe ich unter Connection> SSH> Auth den Pfad zu dem privaten Schlüssel eingegeben, den es auf meinem Client generiert hat, und die Sitzungseinstellungen gespeichert.
Ich habe den ssh-Server mit neu gestartet
sudo service ssh restart
Wenn ich nun das Profil in PuTTY lade (ich habe überprüft, dass der private Schlüssel noch in Connection> SSH> Auth ist und der Pfad korrekt ist) und das Profil ausführe, heißt es
Server refused our key
Ich habe versucht, den öffentlichen Schlüssel in einer Datei unter dem Verzeichnis ./ssh/authorized_keys/
abzulegen, aber das hat nicht geholfen, also habe ich ihn ./ssh/authorized_keys
als Datei verwendet und den Schlüssel darin eingefügt. Ich habe auch versucht, ein privates / öffentliches Schlüsselpaar auf dem Server zu generieren, den öffentlichen Schlüssel ./ssh/authorized_files
einzugeben und den privaten Schlüssel in PuTTY auf meinen Client zu laden. Ein Neustart des Servers hat auch nicht geholfen.
Ich habe festgestellt, dass der Fehler möglicherweise behoben werden kann, indem der Schlüssel außerhalb des Basisordners des Benutzers abgelegt wird. Dies ist jedoch nur sinnvoll, wenn der Basisordner verschlüsselt ist, was bei diesem nicht der Fall ist.
Ich habe auch versucht, einen 4096-Bit-Schlüssel zu generieren, da ich dachte, 1024 wäre zu kurz.
Wie kann ich das zum Laufen bringen? Vielen Dank!
BEARBEITEN:
Ok, /var/log/auth.log
sagte:
sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh
Google sagt mir, ich ~/.ssh/
solle 700 und ~/.ssh/authorized_keys
600 sein, also habe ich das gemacht. Jetzt /var/log/auth.log
sagt:
sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key]
quelle
sshd: error: key_read: uudecode AAAAB3N
Fehler passiertauth.log
?authorized_keys
Datei eingefügt , sondern nur meinemykey.pub
Datei in den~/.ssh
Ordner eingefügt. Ich dachte, er würde ihn abholen. Stattdessen musste ich dies letztendlich ausführen oder bearbeiten und unter anderen Schlüsseln einfügen, die sich möglicherweise dort befinden.cat mykey.pub >> authorized_keys
. Scheint jetzt einfach, aber die gewonnene Lektion ist, dass alle öffentlichen Schlüsselauthorized_keys
nicht nur im~/.ssh/
Verzeichnis gespeichert werden müssen . Jemand bitte beraten, wenn dies keine korrekte Behauptung ist.Ich bin gerade auf dieses Problem gestoßen. Obwohl die Konfiguration korrekt eingestellt ist, wie in diesem Thread bereits erwähnt (Berechtigungen für authorized_keys usw.), stellte sich heraus, dass ich den öffentlichen Schlüssel im falschen Format hatte. Es war in Form von:
Welches hat nicht funktioniert. Aber es hat funktioniert, es in der Form zu haben:
quelle
ssh-keygen -i -f filenameofwindowsformpub.key
den öffentlichen Schlüssel in das Format umwandeln, das von Ihrem OpenSSH-Server verstanden wird.Das Problem ist, dass Windows eine andere neue Zeile als Linux verwendet. Wenn Sie also den Schlüssel von Windows nach Linux kopieren, befindet sich am Ende der Zeile ein \ n , das Sie unter Linux im Editor nicht sehen können.
Wenn Sie die Datei /var/log/auth.log beenden und versuchen, sich anzumelden, ist der Fehler wie folgt:
Wenn Sie Ihren Schlüssel unter Windows so ändern, dass er in einer einzigen Zeile ohne eine neue Zeile am Ende steht, und ihn dann nach Linux kopieren, sollte er funktionieren (hat den Trick für mich getan).
quelle
Ich musste die Berechtigungen für das Basisverzeichnis ändern
quelle
Ich musste die ~ / .ssh-Verzeichnisberechtigungen von 770 auf 700 und die ~ / .ssh / authorized_keys-Dateiberechtigungen von 660 auf 600 ändern.
Aus irgendeinem Grund hat das Entfernen von Gruppenberechtigungen dieses Problem für mich behoben.
quelle
Für die
~/.ssh/authorized_keys
Datei müssen sich alle Schlüssel in einer Zeile befinden. Wenn Sie es wie in der obigen Paste über mehrere Zeilen hinzugefügt haben, versuchen Sie, die Zeilen zu verbinden.quelle
Folgendes hat bei mir funktioniert:
In
puttygen
, nachdem Sie Ihre Schlüssel generiert haben, stellen Sie sicher , dass Sie kopieren und die Informationen aus dem oberen Feld in der authorized_keys - Datei gehen einfügen. Wenn Sie Ihren öffentlichen Schlüssel auf Ihrem Client-Computer speichern und ihn dann öffnen, unterscheidet sich der Text vom Text oben auf demputtygen
Bildschirm. Stellen Sie erneut sicher, dass Sie den Text oben auf demputtygen
Bildschirm (nachdem Sie Ihre Schlüssel erstellt haben) kopieren und in die Datei authorized_keys einfügen, die sich in befinden sollte~/.ssh
.quelle
Stellen Sie zusätzlich zu den oben genannten Antworten sicher, dass Sie den Schlüssel von
puttygen
richtig kopieren und einfügen !Wenn Sie einfach auf den Hauptteil der Schlüsselzeichenfolge doppelklicken, um sie auszuwählen, wird möglicherweise nicht die gesamte Zeichenfolge angezeigt, da das Textfeld Zeilen in einige Zeichen aufteilt
+
, z. B. , sodass Sie den Text nach dem+
Zeichen nicht auswählen ( was Sie nicht sehen können, weil das Textfeld zu klein ist). Stellen Sie sicher, dass Sie die gesamte Zeichenfolge manuellssh-rsa
bis zum Ende des Textfelds auswählen .quelle
Manchmal kann es ein Problem sein, wenn der öffentliche Schlüssel in einer Zeile steht. Dieser Ansatz scheint es zu lösen
quelle
Für mich war das Problem, dass ich
~/.ssh/authorized_keys
mit root erstellt hatte , also mit root. Ich musstechown sshuser:sshuser ~/.ssh/authorized_keys
dann anfangen zu arbeitenquelle
Auch ich war mit diesem Fehler konfrontiert und habe ihn behoben, indem ich die Berechtigungen der Datei authorized_keys in geändert habe
600
.quelle
Häufiger Fehler ist, dass Benutzer einen Texteditor (wie Vim) verwenden und den kopierten Text einfügen, bevor sie "Einfügen" aktivieren (vor dem Einfügen in Vim + i drücken).
quelle
Tatsächlich habe ich die
authorized_keys
Erlaubnis geändert644
, um dann das Problem zu lösen.quelle
um open ssh zu debuggen kann man folgendes benutzen:
Es wird sshd auf einem anderen Port 2020 ausgeführt. Es wird sshd als aktuelles Programm ausgeführt, sodass die Ausgabe an den Bildschirm geht. Wenn es geschlossen ist, ist es geschlossen.
Versuchen Sie dann, eine Verbindung herzustellen.
Erläuterung:
https://www.attachmate.com/documentation/rsit-unix-802/rsit-unix-guide/data/sshd_options_ap.htm
quelle
Ich habe die Dateien ".ssh" und "authorized_keys" erstellt, während ich als root angemeldet war, und dabei die falschen Berechtigungen erteilt. Außerdem wurden alle Dateien im Stammverzeichnis abgelegt.
Das Ändern der Inhaberschaft dieser Dateien an den von Ihnen gewünschten Benutzer ist keine gute Übung. Daher habe ich meine Schritte zurückverfolgt und mich vergewissert, dass ich als der Benutzer angemeldet war, mit dem ich SSH verwenden wollte, und .ssh und authorized_keys erneut erstellt habe.
Anweisungen zum Verbinden von Win7 mit dem Xubuntu 15.04-Server: So erstellen Sie SSH-Schlüssel mit Putty zum Verbinden mit einem VPS
quelle