Das Hinzufügen eines privaten SSH-Schlüssels führt zu dem Fehler, dass 0644-Berechtigungen zu offen sind

9

Ich habe einen privaten SSH-Schlüssel .key generiert. Ich möchte es meinem ssh in Mac hinzufügen, um eine Verbindung zu einem Remote-Server herzustellen. Ich habe nur eine known_hostsDatei im ~/.sshVerzeichnis.

Wenn ich versuche, es mit diesem Befehl hinzuzufügen:

ssh-add -K ~/.ssh/myKey.ppk

Ich erhalte diesen Fehler:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/username/.ssh/myKey.ppk' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Mohamed Mellal
quelle
Mögliches Duplikat von SSH mit Schlüsselpassphrase funktioniert nicht
Jakuje
@Jakuje die Frage ist anders und lässt dies offen. Es kann sich jedoch um ein Duplikat eines anderen handeln.
Harv
1
@ Harv danke für den Kommentar. Die Frage ist anders, aber die Antwort ist immer noch dieselbe. Die folgenden Antworten sind nur unvollständig (sie sind offensichtlich erste Schritte aus dem ersten Kapitel des * nix-Handbuchs zur Fehlerbehebung), führen jedoch nirgendwo hin. Nach dem Anwenden eines von beiden wird das OP feststellen, dass OpenSSH nicht weiß, wie das private Putty-Schlüsselformat zu lesen ist, und dann wird er fragen, warum, was auf meine Antwort hinausläuft.
Jakuje
@ Jakuje Interessant. Ich wusste das nicht über das unterschiedliche Format; Die Frage bezieht sich speziell auf Berechtigungen, nicht auf das Dateiformat. Dank Ihres Beitrags muss sich OP jedoch damit befassen, sobald Berechtigungsprobleme aus dem Weg sind.
Harv

Antworten:

14

Die Fehlermeldung wird angezeigt, weil die Dateiberechtigungen so festgelegt sind, dass sie von anderen Benutzern außer dem angemeldeten Benutzer gelesen werden können. Um die Fehlermeldung zu beheben, müssen Sie die Dateiberechtigungen für den privaten Schlüssel so ändern, dass er nur von Ihnen gelesen werden kann.

Führen Sie dazu den folgenden Befehl im Terminal aus:

cd ~/.ssh ; chmod 400 myKey.ppk

Auf diese Weise kann nur Ihr Benutzer die private Schlüsseldatei lesen (und nicht schreiben und ausführen) und alle anderen daran hindern, die Datei zu lesen, zu schreiben und auszuführen.

Dadurch wird die angezeigte Fehlermeldung behoben, und Sie sollten in der Lage sein, die private Schlüsseldatei ordnungsgemäß hinzuzufügen.

Nimesh Neema
quelle
9

Gehen Sie zum Terminal und geben Sie diesen Befehl ein:

chmod 0600 ~/.ssh/myKey.ppk

Das sollte in Ordnung sein.

Scott Earle
quelle
5
Warum überhaupt Schreibzugriff zulassen? 0400wäre ausreichend.
Ruslan
2
Es ist durchaus möglich, dass er es später aktualisieren möchte. Auf jeden Fall ist 0600 viel besser als 0644
Scott Earle
3

Während das Ändern der Berechtigungen der .ppkDatei tatsächlich dazu führt, dass diese Warnung verschwindet, würde ich empfehlen, den Zugriff von Gruppen / anderen auf das .sshVerzeichnis insgesamt zu deaktivieren :

cd ~
chmod g-rwx .ssh
chmod o-rwx .ssh

Andernfalls könnten andere Benutzer mit unsicheren Berechtigungen für Ihr Home-Verzeichnis Dateien (wie authorized_keys) in Ihrem .sshVerzeichnis ablegen oder mit Elementen herumspielen known_hostsoder diese ändern configund auf diese Weise Zugriff erhalten - ohne dass Sie Ihr Kennwort oder Ihren privaten Schlüssel kennen müssen.

Zweitens wäre es in einer Mehrbenutzerumgebung zweifelhaft, die Berechtigungen nur rückwirkend auf einen Schlüssel zu beschränken. Wenn ein privater Schlüssel zu einem bestimmten Zeitpunkt auf einem Mehrbenutzersystem weltweit lesbar war, sollte er als bereits gefährdet betrachtet werden.

jvb
quelle
2

Es sieht so aus, als hätten Sie Ihren privaten Schlüssel von Windows oder von einem anderen Computer kopiert, auf dem Sie PuTTY verwendet haben. Leider unterstützt das sshBefehlszeilentool dieses Schlüsselformat nicht und daher haben Sie zwei Möglichkeiten:

  • Installieren Sie PuTTY erneut (es sollte auch auf Ihrem Mac vorhanden sein)
  • Konvertieren Sie den privaten Schlüssel vom PuTTY-Dateiformat in das OpenSSH-Format (verwenden Sie erneut PuTTYGen von PuTTY, wie bereits in meiner vorherigen Antwort beschrieben :

    • Öffnen Sie PuttyGen
    • Klicken Sie auf Laden
    • Laden Sie Ihren privaten Schlüssel
    • Gehen Sie zu Conversions -> OpenSSH exportieren und exportieren Sie Ihren privaten Schlüssel
    • Kopieren Sie Ihren privaten Schlüssel nach ~/.ssh/id_rsa

Wenn Sie weiterhin Probleme mit dem neuen exportierten Schlüssel sehen ( ~/.ssh/id_rsastellen Sie sicher, dass der Schlüssel nur von Ihnen (es ist Ihr privater Schlüssel) gelesen werden kann, indem Sie alle Berechtigungen aller anderen durch Ausführen entfernen chmod 600 ~/.ssh/id_rsa.

Jakuje
quelle
Es macht keinen Sinn, dies herabzustimmen. Die Berechtigungen sind irrelevant, wenn ssh den Schlüssel selbst mit korrekten Berechtigungen nicht verstehen kann. Darüber hinaus zeigt die Antwort auch, wie die richtigen Berechtigungen festgelegt werden.
Muru