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 Passphrase oder einem Passwort fragt.
quelle
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 auf 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.
quelle
Es gibt ein paar Dinge.
Wenn der KEY in erster Linie nach einem Passwort fragt, wurde der Schlüssel damit generiert. Zweitens wird der Schlüssel nicht authentifiziert, wenn das System danach zur Eingabe eines Kennworts auffordert. Das heißt, Sie müssen Ihren SSH-Schlüssel neu generieren (oder wie von @rbtux vorgeschlagen ändern) und die authorized_keys-Dateien reparieren.
Die Elemente in geschweiften Klammern sind Optionen, Typ und Bitgröße.
Dann müssen Sie den öffentlichen Schlüssel (.pub) zu den
authorized_keys
undauthorized_keys2
-Dateien hinzufügen (es ist ein weit verbreitetes Missverständnis, dass die .pub -Datei für die lokale Verwendung gedacht ist, jedoch zum Vergleich). Also im.ssh
Ordner des Servers .Als letztes sollten Sie sicherstellen, dass die Schlüsselberechtigungen vorhanden sind,
chmod 600 id_example
und um das Eingeben all dessen zu erleichtern , können Sie die Konfigurationsdatei einrichten:~/.ssh/config
Auf Ihrer lokalen Box (das ist ein Skelett, Sie können dies eine Tonne anpassen):quelle
$ ssh user@comp -i ~/.ssh/id_rsa.pub
und es werden falsche Berechtigungen und private Rechte angegeben Der Schlüssel wird ignoriert. Ich habe also die Berechtigungen auf 600 geändert, wie es id_rsa tun würde, und es wurde nach einer Passphrase gefragt. Also, ja, es wird dann nach einer Passphrase gefragt , ob Sie die öffentlichen Schlüssel angeben, auch beide , obwohl der öffentliche Schlüssel und der private Schlüssel nicht mit einem Passwort generiertFür mich, da der Schlüssel selbst verschlüsselt wurde, habe ich die folgenden Schritte befolgt:
$ ssh-agent bash
$ ssh-add
$ ssh-add /location/of/key
Die Liste der aktuell geladenen Schlüssel kann jederzeit eingesehen werden:
Weitere Details erhalten Sie unter diesem Link
quelle
Versuchen Sie https://wiki.gentoo.org/wiki/Keychain
Es ist eine Art Wrap on
ssh-agent
undssh-add
Vorteile: Sie müssen das Passwort nicht wiederholt eingeben, solange Sie nicht neu starten. Könnte in verwendet werden
crontab
.Es könnte helfen.
quelle
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,
/etc/ssh/sshd_config
indem Sie die folgende Zeile aktualisieren oder entsprechend hinzufügenUnd dann den Dienst neu starten
quelle
Unter Mac OS X können Sie Ihren privaten Schlüssel mit dem folgenden Befehl zum Schlüsselbund hinzufügen:
Wenn Ihr privater Schlüssel unter ~ / .ssh gespeichert ist und den Namen id_rsa trägt:
Sie werden dann aufgefordert, Ihr Kennwort einzugeben, das in Ihrem Schlüsselbund gespeichert wird.
quelle