SSH: "Berechtigungen 0644 für 'my_key.pub' sind zu offen."

21

Warum ist 0644zB -rw-r--r--ein SSH-Schlüssel zu offen? Außerdem konnte ich keine falschen Berechtigungen für das .sshVerzeichnis ( 0700) oder das Basisverzeichnis ( 0731) finden.

Übrigens bekomme ich diesen Fehler beim Testen der Umschreibung eines Schlüssels über ssh-keygen -y -f my_key.pub

Freundliche Grüße

user2820379
quelle

Antworten:

7

Möglicherweise führen Sie ssh-keygen in der falschen Datei aus. ssh-keygen -yarbeitet mit einer privaten Schlüsseldatei. ".pub" -Dateien enthalten normalerweise den öffentlichen Schlüssel. Sie haben dort wahrscheinlich eine Datei mit dem Namen my_key, ohne Erweiterung, und sie sollte den Modus 0600 haben. Dies ist die Datei, die den privaten Schlüssel enthalten sollte.

Um Ihre Frage direkt zu beantworten, werden normalerweise SSH-Schlüssel verwendet, um eine Verbindung zu Remote-Servern ohne Kennwort herzustellen. Der Besitz des privaten Schlüssels würde es jemandem ermöglichen, sich in Ihrem Konto auf jedem System anzumelden, das den Schlüssel akzeptiert. ssh-keygen und die anderen ssh-Dienstprogramme erfordern eingeschränkte Berechtigungen für private Schlüsseldateien, da die Dateien vertraulich sind und sicher bleiben müssen.

Kenster
quelle
11

0644 Es sollte nicht zu offen für einen öffentlichen Schlüssel sein, aber es ist zu offen für Ihren privaten Schlüssel.

Ihr privater Schlüssel sollte die Berechtigung haben, 0600während Ihr öffentlicher Schlüssel die Berechtigung hat 0644.

Übrigens sollten Sie auch auf die Berechtigung für .sshOrdner achten . Es sollte die Berechtigung haben 0700, damit nur Sie, der Besitzer, die Kontrolle über den Ordner haben.

In Ihrem Home-Verzeichnis dürfen weder Gruppen noch anderen Personen Schreibrechte gewährt werden.

Run chmod go-w /home/usernamesollte das beheben.

pallxk
quelle
Befolgen Sie auf keinen Fall diese Anweisungen. Das solltest du NICHT tun. Dadurch werden auch alle Basisverzeichnisberechtigungen zurückgesetzt. Sie sollten NUR den .sshOrdner und die id_rsaDatei selbst ändern , nicht Ihr gesamtes Home-Verzeichnis!
Niftylettuce
9

Der einzige Befehl, den Sie ausführen müssen, ist chmod 600 ~/.ssh/id_rsa. Das ist es.

Dadurch werden die Berechtigungen für die Datei geändert, sodass der Eigentümer (Sie) sie lesen und schreiben kann. Dadurch wird die Fehlermeldung entfernt, die Sie erhalten.

niftylettuce
quelle
@TwistyImpersonator
niftylettuce
0

Die obigen Antworten sind gültig, aber bevor sie ausgeführt werden chmod Berechtigungen reparieren, vergewissern Sie sich, dass Ihre IdentityFile(n) in ~/.ssh/configsich auf Ihren privaten Schlüssel beziehen. Anfänger könnten dies falsch verstehen und .pubstattdessen auf den öffentlichen Schlüssel (mit Erweiterung) verweisen , was zu demselben Fehler führt (da die Dateiberechtigungen für den öffentlichen Schlüssel für einen privaten Schlüssel zu offen sind).

Javarome
quelle