Diese Frage wurde schon so oft gestellt, aber die Lösungen funktionieren bei mir nicht.
Ich versuche, mit einem Schlüssel von einem Ubuntu-System auf mein Synology NAS zuzugreifen, werde aber immer noch nach dem Benutzerkennwort gefragt, da der private Schlüssel zu offen ist
Ich habe meine Schlüssel in /opt/duplicati/config/.ssh id_rsa und id_rsa.pub erstellt.
Dann habe ich ssh-copy-id verwendet, um den öffentlichen Schlüssel auf mein NAS zu kopieren.
Aber wenn ich versuche, mich per SSH mit meinem NAS zu verbinden, erhalte ich Folgendes:
ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa.pub '[email protected]'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/opt/duplicati/config/.ssh/id_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/opt/duplicati/config/.ssh/id_rsa.pub": bad permissions
[email protected]'s password:
Es ist seltsam, dass das Problem mit dem privaten Schlüssel zusammenhängt, aber es wird bemängelt, dass die 0644-Berechtigung für den öffentlichen Schlüssel zu offen ist.
Die Lösung hierfür besteht darin, die Berechtigung für beide Schlüssel und den .ssh-Ordner auf 0400 oder 0600 zu reduzieren. Wenn ich das jedoch tue, scheint es, als könne SSH die Datei nicht mehr lesen und ich erhalte diesen Fehler
Load key "/opt/duplicati/config/.ssh/id_rsa.pub": error in libcrypto
Ich habe dies bereits mit Root und mit einem Administratorbenutzer versucht, aber es funktioniert nicht.
Liegt das daran, dass meine Schlüssel nicht im üblichen Home-Ordner ~/.ssh/ liegen?
Von einem anderen Ubuntu-System aus konnte ich mich mit dem in ~/.ssh/ gespeicherten Schlüssel per SSH auf mein NAS einloggen.
Antwort1
ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa.pub '[email protected]'
Ihr eigentliches Problem besteht darin, dass Sie für den Parameter „-i“ die falsche Schlüsseldatei verwenden. Die Datei mit der Erweiterung „.pub“ enthält den öffentlichen Teil des Schlüssels. Die entsprechende Datei ohne die Erweiterung „.pub“ enthält den privaten Teil des Schlüssels. Wenn Sie einen SSH-Client ausführen, um eine Verbindung zu einem Remote-Server herzustellen, müssen Sie dem SSH-Client die private Schlüsseldatei bereitstellen, nicht die öffentliche Schlüsseldatei.
Sie haben wahrscheinlich eine Datei namens "/opt/duplicati/config/.ssh/id_rsa" ohne die Erweiterung ".pub". Dies ist die Datei, die Sie beim Ausführen von SSH verwenden sollten:
ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa '[email protected]'
^--- no extension
Sie erhalten eine Fehlermeldung bezüglich der Berechtigungen, da private Schlüsseldateien vertrauliche Informationen enthalten. Daher ssh
erfordert das Programm, dass private Schlüsseldateien über Berechtigungen verfügen, die verhindern, dass andere sie lesen können. Die öffentliche Schlüsseldatei (die Datei mit der Erweiterung „.pub“) enthält keine vertraulichen Informationen. Daher erstellt das Tool, das Schlüsseldateien erstellt, die öffentliche Schlüsseldatei mit weniger strengen Berechtigungen.
Antwort2
Hier ist ein verwandter opensslGitHub-Problemund ein ServerfehlerFrage. In beiden Situationen scheint das Generieren eines neuen Schlüssels funktioniert zu haben. Die Ursache hierfür könnte ein Kompatibilitäts- oder Beschädigungsproblem sein.