it-swarm.com.de

öffentlicher Schlüssel, der immer nach Passwort und Schlüsselphrase fragt

Ich versuche, mithilfe eines öffentlichen Schlüssels eine SSH-Verbindung von einem NAS zu einem Webserver herzustellen. NAS Benutzer ist 'root' und Webserver-Benutzer ist 'backup'

Ich habe alle Berechtigungen richtig eingestellt und beim Debuggen der SSH-Verbindung erhalte ich:

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 [email protected]

Die Tatsache, dass es nach einer Passphrase fragt, ist sicherlich ein gutes Zeichen, aber ich möchte nicht, dass es nach dieser oder einem Passwort fragt (was danach kommt, wenn ich auf der Passphrase die Eingabetaste drücke)

19
Andrew Atkinson

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

Ursprünglich habe ich meinen Schlüssel mit PuttyGen unter Windows generiert und wurde mit der gleichen Aktion zurückgeworfen.

Ich konnte das Problem beheben, indem ich den Schlüssel in PuttyGen geladen und auf "Conversions" geklickt habe, um ihn in das OpenSSH-Format zu bringen.

6
Locane

Für mich, da der Schlüssel selbst verschlüsselt wurde, habe ich die folgenden Schritte ausgeführt:

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

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

$ ssh-add -l

Weitere Informationen erhalten Sie über diesen Link

2
Sibi

Es gibt ein paar Dinge.

Wenn der KEY in erster Linie nach einem Passwort fragt, wurde der Schlüssel damit generiert. Zweitens, wenn das System danach zur Eingabe eines Kennworts auffordert, wird der Schlüssel nicht authentifiziert. Das heißt, Sie müssen Ihren SSH-Schlüssel neu generieren (oder wie von @rbtux vorgeschlagen ändern) und die authorized_keys-Dateien reparieren.

ssh-keygen -t {dsa | rsa} -b {1024 | 2048 | 4096} -C "optionaler Kommentar" -f id_examplekey

Die Elemente in geschweiften Klammern sind Optionen, Typ und Bitgröße (Um es klar auszudrücken: dsa> rsa, 4096> 1024 - in Bezug auf "Sicherheit").

Dann müssen Sie den öffentlichen Schlüssel (.pub) zu den Dateien authorized_keys und authorized_keys2 hinzufügen (es ist ein verbreiteter Irrtum, zu behaupten, die .pub-Datei sei für die lokale Verwendung bestimmt, soll jedoch mit dieser verglichen werden). Also im Ordner .ssh des Servers.

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

Als letztes sollten Sie sicherstellen, dass die Schlüsselberechtigungen chmod 600 id_example sind, und um die Eingabe all dessen zu vereinfachen, können Sie die Konfigurationsdatei einrichten: ~/.ssh/config auf Ihrer lokalen Box (das ist ein Grundgerüst, Sie können dies eine Tonne anpassen):

Host example.com
    User WHATEVERNAME
    IdentityFile ~/.ssh/id_examplekey
2
nerdwaller

try https://wiki.gentoo.org/wiki/Keychain

Es ist eine Art Wrap auf ssh-agent und ssh-add

Vorteile: Sie müssen das Passwort nicht wiederholt eingeben, solange Sie nicht neu starten. Kann in crontab verwendet werden.

Es könnte helfen.

1
Gon

Dies kann daran liegen, dass Sie einen DSA-Pubkey verwenden, der in OpenSSH v7 standardmäßig deaktiviert ist.

Wenn Sie das Schlüsselpaar nicht ändern können, können Sie als Problemumgehung Ihren SSH-Daemon auf webserver.com anweisen, diese Schlüsseltypen zu akzeptieren, indem Sie /etc/ssh/sshd_config aktualisieren oder die folgende Zeile hinzufügen

PubkeyAcceptedKeyTypes=+ssh-dss

Und dann den Dienst neu starten

/etc/init.d/ssh restart                     # or equivalent
1
mosh442

Unter Mac OS X 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 den Namen id_rsa trägt:

ssh-add -K ~/.ssh/id_rsa

Sie werden dann aufgefordert, Ihr Passwort einzugeben, das in Ihrem Schlüsselbund gespeichert wird.

0
Groot