Frage ssh "Berechtigungen sind zu offen" -Fehler


Ich hatte ein Problem mit meinem Mac, wo ich keine Datei mehr auf der Festplatte speichern konnte. Ich musste OSX Löwe neu starten und die Erlaubnis auf Akten und acls zurückstellen.

Aber jetzt, wenn ich ein Repository festlegen will, bekomme ich folgenden Fehler von ssh:

Permissions 0777 for '/Users/username/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

Welche Berechtigungsstufen sollte ich der id_rsa-Datei geben?


1268
2018-02-14 02:02


Ursprung


Antworten:


Schlüssel müssen nur für Sie lesbar sein:

chmod 400 ~/.ssh/id_rsa

600 scheint auch in Ordnung zu sein (in den meisten Fällen sogar besser, weil Sie die Dateiberechtigungen nicht ändern müssen, um sie zu bearbeiten).

Der relevante Teil aus der Manpage (man ssh)

 ~/.ssh/id_rsa
         Contains the private key for authentication.  These files contain sensitive 
         data and should be readable by the user but not
         accessible by others (read/write/execute).  ssh will simply ignore a private 
         key file if it is              
         accessible by others.  It is possible to specify a
         passphrase when generating the key which will be used to encrypt the sensitive 
         part of this file using 3DES.

 ~/.ssh/identity.pub
 ~/.ssh/id_dsa.pub
 ~/.ssh/id_ecdsa.pub
 ~/.ssh/id_rsa.pub
         Contains the public key for authentication.  These files are not sensitive and 
         can (but need not) be readable by anyone.

2183
2018-02-14 02:05



Mit Cygwin in Windows 8.1 muss ein Befehl ausgeführt werden:

chgrp Benutzer ~ / .ssh / id_rsa

Dann kann die hier gepostete Lösung angewendet werden, 400 oder 600 ist in Ordnung.

chmod 600 ~ / .ssh / id_rsa

Ref: http://vineetgupta.com/blog/cygwin-permissions-bug-on-windows-8


77
2018-04-11 11:17



Die locale-unabhängige Lösung, die unter Windows 8.1 funktioniert, ist:

chgrp 545 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa

GID 545 ist ein spezielle ID Das bezieht sich immer auf die Gruppe "Benutzer", auch wenn Sie in der Ländereinstellung ein anderes Wort für Benutzer verwenden.


29
2018-02-21 15:51



0600 ist, was meins ist (und es funktioniert)


22
2018-02-14 02:04



AFAIK die Werte sind:

700 für das versteckte Verzeichnis ".ssh", wo sich die Schlüsseldatei befindet

600 für das Keyfile "id_rsa"


20
2017-11-13 07:57



Es gibt eine Ausnahme für die Berechtigungsanforderung "0x00" für einen Schlüssel. Wenn der Schlüssel dem Stamm und der Gruppe gehört, die einer Gruppe mit Benutzern gehört, kann er "0440" lauten und jeder Benutzer in dieser Gruppe kann den Schlüssel verwenden.

Ich glaube, das wird mit allen Berechtigungen in der Menge "0xx0" funktionieren, aber ich habe nicht jede Kombination mit jeder Version getestet. Ich habe 0660 mit 5.3p1-84 auf CentOS 6 versucht, und die Gruppe nicht die primäre Gruppe des Benutzers, sondern eine sekundäre Gruppe, und es funktioniert gut.

Dies wird normalerweise nicht für den persönlichen Schlüssel eines Benutzers ausgeführt, sondern für einen Schlüssel, der für die Automatisierung verwendet wird, in einer Situation, in der die Anwendung nicht in der Lage sein soll, mit dem Schlüssel zu verfahren.

Ähnliche Regeln gelten für die Verzeichniseinschränkungen .ssh.


13
2017-11-13 17:18



was für mich funktioniert hat

chgrp Benutzer FOLDER

chmod 600 FOLDER


5
2018-03-26 22:54



Interessante Nachricht hier. Betriebssyatem sind intelligent genug, um entfernte Verbindungen zu verweigern, wenn Ihr privater Schlüssel zu offen ist. Es versteht das Risiko, wo Berechtigungen für id_rsa weit offen ist (lesen, kann von jedem bearbeitet werden).

{Vielleicht hat man zuerst seine Sperre geändert und dann mit den Schlüsseln, die er bereits hatte, geöffnet. }

cd ~/.ssh
chmod 400 id_rsa

PS:

Bei der Arbeit an mehreren Servern (Nicht-Produktion) fühlen sich die meisten von uns gezwungen, einen Remote-Server mit ssh zu verbinden. Eine gute Idee ist, ein Stück Code auf Anwendungsebene zu haben (kann Java mit jsch sein), um SSH-Vertrauensstellungen zwischen Servern zu erstellen. Auf diese Weise ist die Verbindung passwortlos. Incase ist Perl installiert - man kann auch das net ssh Modul benutzen.


2
2018-05-13 07:35



Ich bin mit diesem Fehler konfrontiert worden, als ich mit Ansible gespielt habe. Ich habe die Berechtigungen des privaten Schlüssels geändert 600 um dieses Problem zu lösen. Und es hat funktioniert!

chmod 600 .vagrant/machines/default/virtualbox/private_key

1
2018-04-02 15:53