Öffentlicher Schlüssel, der immer nach Kennwort und Schlüsselwort fragt

48080
Andrew Atkinson

Ich versuche, mit einem öffentlichen Schlüssel von einem NAS zu einem Webserver SSH zu machen. NAS-Benutzer ist "root" und Webserver-Benutzer ist "Backup".

Ich habe alle Berechtigungen richtig gesetzt und beim Debuggen der SSH-Verbindung bekomme ich: (letztes bisschen Debugging)

debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password debug1: Next authentication method: publickey debug1: Offering DSA public key: /root/.ssh/id_dsa.pub debug1: Server accepts key: pkalg ssh-dss blen 433 debug1: key_parse_private_pem: PEM_read_PrivateKey failed debug1: read PEM private key done: type <unknown> Enter passphrase for key '/root/.ssh/id_dsa.pub': 

Ich benutze den Befehl:

ssh -v -i /root/.ssh/id_dsa.pub backup@webserver.com 

Die Tatsache, dass es nach einer Passphrase fragt, ist sicherlich ein gutes Zeichen, aber ich möchte nicht, dass es nach diesem oder nach einem Passwort fragt (was danach kommt, wenn ich bei der Passphrase "Zurück" drücke).

19

7 Antworten auf die Frage

24
andrekeller

Thats because your private key is encrypted...

You can add your key to an ssh agent using ssh-add or remove the passphrase (and with it the encryption) from the key using the following command:

ssh-keygen -p -f /root/.ssh/id_dsa -N '' 


EDIT

Oh I just realized that you try to use your public key to authenticate... You want to use the private key there:

ssh -v -i /root/.ssh/id_dsa backup@webserver.com 

And just to make absolutely sure, the content of the file id_dsa.pub goes into ~backup/.ssh/authorized_keys on the webserver. You can use the following command to do that automatically

ssh-copy-id -i /root/.ssh/id_rsa.pub backup@webserver.com 
bekomme immer noch das Problem. Es hat funktioniert und mir wurde mit "Ihre Identifikation wurde mit der neuen Passphrase gespeichert" bestätigt. fragt dann aber trotzdem beim nächsten Anmeldevorgang nach einer Passphrase. Ich bin mir nicht sicher, was ich sonst noch versuchen soll ... Andrew Atkinson vor 11 Jahren 0
überprüfe meine aktualisierte Antwort ... vielleicht hilft das ... andrekeller vor 11 Jahren 0
Vielen Dank, es scheint, als habe ich versucht, den öffentlichen Schlüssel mit dem öffentlichen Schlüssel zu vergleichen. Ich musste die Passphrase nicht entfernen Andrew Atkinson vor 11 Jahren 0
Die Tatsache, dass ich meine Kneipe zur Authentifizierung verwendete (ein dummer Fehler), war das Problem. Vielen Dank! Qix vor 9 Jahren 0
6
Locane

Dies passierte mir, als der private Schlüssel, den ich besaß, nicht im OpenSSH-Format war.

Ich habe meinen Schlüssel ursprünglich mit PuttyGen unter Windows generiert und wurde mit dem gleichen Ergebnis zurückgeworfen.

Ich konnte das Problem beheben, indem ich den Schlüssel in PuttyGen lade und auf "Conversions" klicke, um das OpenSSH-Format zu erhalten.

2
nerdwaller

Es gibt ein paar Dinge.

Wenn der KEY nach einem Passwort fragt, wurde der Schlüssel damit generiert. Zweitens: Wenn das System nach einem Kennwort fragt, authentifiziert sich der Schlüssel nicht. Das heißt, Sie müssen Ihren SSH-Schlüssel neu generieren (oder ihn ändern, wie von @rbtux vorgeschlagen) und die authorized_keys-Dateien korrigieren.

ssh-keygen -t -b -C "optionaler Kommentar" -f id_examplekey

Die Elemente in geschweiften Klammern sind Optionen, Typ und Bitgröße (Um das Offensichtliche anzugeben: dsa> rsa, 4096> 1024 - in Bezug auf "Sicherheit").

Dann müssen Sie den öffentlichen Schlüssel (.pub) zu den authorized_keysund authorized_keys2-Dateien hinzufügen (es ist ein verbreiteter Irrglaube zu sagen, dass der .pub für den lokalen Gebrauch gedacht ist, jedoch mit dem verglichen werden soll). Also im Serverordner .ssh.

$ cat id_examplekey.pub >> authorized_keys {, 2}

Dann sollten Sie an Ihrem Ende sicherstellen, dass die Schlüsselberechtigungen vorhanden sind, chmod 600 id_exampleund um die Eingabe zu vereinfachen, können Sie die Konfigurationsdatei einrichten: ~/.ssh/configAuf Ihrer lokalen Box (das ist ein Skelett, können Sie dies tonnenweise anpassen):

Host example.com User WHATEVERNAME IdentityFile ~/.ssh/id_examplekey 
der Abschnitt im debug lautet jedoch: debug1: Server akzeptiert den Schlüssel: pkalg ssh-dss blen 433 bedeutet dies nicht, dass der Schlüssel akzeptiert wurde? Ich habe wieder ohne Passphrase neu erstellt, immer noch das gleiche? - Ich habe keine Ideen mehr? Vielen Dank Andrew Atkinson vor 11 Jahren 0
@AndrewAtkinson Sieht aus, als hätten Sie es unten. Sie benötigen den privaten Schlüssel auf dem From-Rechner (local, client, was auch immer) und den Schlüssel public.pub, der den authorized_keys-Dateien hinzugefügt wird. Meine anderen Vorschläge sollten Ihnen helfen, Zeit zu sparen: D Viel Glück! nerdwaller vor 11 Jahren 0
Sie schreiben: "Wenn der KEY nach einem Passwort fragt, wurde der Schlüssel damit generiert." <- Ja, obwohl ich gerade getestet habe, was der Fragesteller getan hat, also -i mit dem öffentlichen Schlüssel "$ ssh user @ comp -" i ~ / .ssh / id_rsa.pub` und sagte, dass falsche Berechtigungen und private Schlüssel ignoriert werden. Also habe ich die Berechtigungen auf 600 geändert, wie id_rsa, und es wurde nach einer Passphrase gefragt. Wenn Sie also den öffentlichen Schlüssel angeben, werden Sie nach einer Passphrase gefragt, obwohl sowohl der öffentliche als auch der private Schlüssel nicht mit einer Passphrase generiert wurden barlop vor 9 Jahren 0
2
Sibi

Da der Schlüssel selbst verschlüsselt wurde, habe ich folgende Schritte ausgeführt:

  • Starten Sie den ssh-agent: $ ssh-agent bash
  • Fügen Sie dem Schlüsselmanager einen Standardidentitätsschlüssel hinzu: $ ssh-add
  • Wenn Sie einen anderen Schlüssel hinzufügen möchten, gilt Folgendes: $ ssh-add /location/of/key

Die Liste der aktuell geladenen Schlüssel kann jederzeit eingesehen werden:

$ ssh-add -l 

Weitere Details finden Sie unter diesem Link

1
Gon

Versuchen Sie es mit https://wiki.gentoo.org/wiki/Keychain

Es ist eine Art Wrap auf ssh-agentundssh-add

Vorteile: Sie müssen das Kennwort nicht wiederholt eingeben, solange Sie nicht neu starten. Könnte in verwendet werden crontab.

Es könnte helfen.

1
mosh442

Möglicherweise verwenden Sie einen DSA-Pubkey, der in OpenSSH v7 standardmäßig deaktiviert ist.

Wenn Sie das Schlüsselpaar nicht ändern können, besteht eine mögliche Problemumgehung darin, Ihren SSH-Dämon auf webserver.com anzuweisen, diese Schlüsseltypen zu akzeptieren, /etc/ssh/sshd_configindem Sie die folgende Zeile aktualisieren oder gleichwertige hinzufügen

PubkeyAcceptedKeyTypes=+ssh-dss 

Und dann den Dienst neu starten

/etc/init.d/ssh restart # or equivalent 
0
Groot

Unter Mac OSX können Sie Ihren privaten Schlüssel mit dem folgenden Befehl zum Schlüsselbund hinzufügen:

ssh-add -K /path/to/private_key 

Wenn Ihr privater Schlüssel unter ~ / .ssh gespeichert ist und id_rsa heißt:

ssh-add -K ~/.ssh/id_rsa 

Sie werden dann nach Ihrem Passwort gefragt, das in Ihrem Schlüsselbund gespeichert wird.

Was muss ich auf einem Linux-Client tun, wenn der Mac-Client funktioniert? bbaassssiiee vor 7 Jahren 0