Berechtigungen für private Schlüssel in.ssh-Ordner?

Ich habe meine Berechtigungen in meinem Ordner .ssh geändert und wenn ich jetzt eine Software verwende, die meinen privaten Schlüssel verwendet, muss ich jedes Mal mein Passwort eingeben. Was sollten meine Berechtigungen für meine id_rsa Datei sein, damit ich nicht jedes Mal ein Passwort eingeben muss, wenn ich eine App verwende, die es verwendet?

Derzeit sind meine Berechtigungen auf:

-rw-------@ 1 Jody  staff   114 Nov  4 23:29 config
-rw-------  1 Jody  staff  1743 Oct 21  2009 id_rsa
-rw-------@ 1 Jody  staff   397 Oct 21  2009 id_rsa.pub 
-rw-------@ 1 Jody  staff  3855 Sep 13 22:35 known_hosts
Author: Giacomo1968, 2010-11-26

6 answers

Normalerweise möchten Sie die Berechtigungen sein:

  • .ssh Verzeichnis: 700 (drwx------)
  • öffentlicher Schlüssel (.pub Datei): 644 (-rw-r--r--)
  • privater Schlüssel (id_rsa): 600 (-rw-------)
  • schließlich sollte Ihr Home-Verzeichnis nicht von der Gruppe oder anderen schreibbar sein (höchstens 755 (drwxr-xr-x)).

Ich gehe davon aus, dass Sie meinen, dass Sie jedes Mal Ihr System - /Benutzerkennwort eingeben müssen und dass Sie dies zuvor nicht mussten. die Antwort von cdhowie geht davon aus, dass Sie ein Passwort/eine Passphrase festlegen, wenn generieren Sie Ihre Schlüssel, und wenn Sie es dann getan haben, wie er sagt, müssen Sie jedes Mal Ihr Passwort eingeben, es sei denn, Sie verwenden einen SSH-Agenten.

 786
Author: Fabs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-10-12 08:46:54

Ich kämpfte für immer damit und fand schließlich heraus, was gebraucht wird. Ersetzen Sie $USER überall durch den SSH-Benutzernamen, bei dem Sie sich auf dem Server anmelden möchten. Wenn Sie versuchen, sich als root anzumelden, müssen Sie /root/.ssh usw. verwenden., anstelle von /home/root/.ssh, wie es für Nicht-Root-Benutzer ist.

  • Home-Verzeichnis auf dem Server sollte nicht von anderen beschreibbar sein: chmod go-w /home/$USER
  • SSH-Ordner auf dem Server benötigt 700 Berechtigungen: chmod 700 /home/$USER/.ssh
  • Authorized_keys Datei benötigt 644 Berechtigungen: chmod 644 /home/$USER/.ssh/authorized_keys
  • Stellen Sie sicher, dass user die Dateien/Ordner besitzt und nicht root: chown user:user authorized_keys und chown user:user /home/$USER/.ssh
  • Setzen Sie den generierten öffentlichen Schlüssel (von ssh-keygen) in die Datei authorized_keys des Benutzers auf dem Server
  • Stellen Sie sicher, dass das Home-Verzeichnis des Benutzers so eingestellt ist, wie Sie es erwarten, und dass es den richtigen Ordner .ssh enthält, den Sie geändert haben. Wenn nicht, verwenden Sie usermod -d /home/$USER $USER, um das Problem zu beheben
  • Schließlich starten Sie ssh neu: service ssh restart
  • Stellen Sie dann sicher, dass der Client den öffentlichen Schlüssel hat und private Schlüsseldateien im Ordner .ssh des lokalen Benutzers und Anmeldung: ssh [email protected]
 107
Author: Alex W,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-12-27 15:41:20

Stellen Sie außerdem sicher, dass Ihr Home-Verzeichnis nicht von anderen Benutzern beschreibbar ist.

chmod g-w,o-w ~

 37
Author: Felipe Alvarez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-03-14 03:29:16

Ich poste dies als separate Antwort, da ich Manpage-Empfehlungen in Berechtigungen übersetzen sehen wollte.

Zusammenfassung basierend auf den Manpage-Anführungszeichen (am Ende verlinkt):

+------------------------+-------------------------------------+-------------+-------------+
| Directory or File      | Man Page                            | Recommended | Mandatory   |
|                        |                                     | Permissions | Permissions |
+------------------------+-------------------------------------+-------------+-------------+
| ~/.ssh/                | There is no general requirement to  | 700         |             |
|                        | keep the entire contents of this    |             |             |
|                        | directory secret, but the           |             |             |
|                        | recommended permissions are         |             |             |
|                        | read/write/execute for the user,    |             |             |
|                        | and not accessible by others.       |             |             |
+------------------------+-------------------------------------+-------------+-------------+
| ~/.ssh/authorized_keys | This file is not highly sensitive,  | 600         |             |
|                        | but the recommended permissions are |             |             |
|                        | read/write for the user, and not    |             |             |
|                        | accessible by others                |             |             |
+------------------------+-------------------------------------+-------------+-------------+
| ~/.ssh/config          | Because of the potential for abuse, |             | 600         |
|                        | this file must have strict          |             |             |
|                        | permissions: read/write for the     |             |             |
|                        | user, and not accessible by others. |             |             |
|                        | It may be group-writable provided   |             |             |
|                        | that the group in question contains |             |             |
|                        | only the user.                      |             |             |
+------------------------+-------------------------------------+-------------+-------------+
| ~/.ssh/identity        | These files contain sensitive data  |             | 600         |
| ~/.ssh/id_dsa          | and should be readable by the user  |             |             |
| ~/.ssh/id_rsa          | but not accessible by others        |             |             |
|                        | (read/write/execute)                |             |             |
+------------------------+-------------------------------------+-------------+-------------+
| ~/.ssh/identity.pub    | Contains the public key for         | 644         |             |
| ~/.ssh/id_dsa.pub      | authentication.  These files are    |             |             |
| ~/.ssh/id_rsa.pub      | not sensitive and can (but need     |             |             |
|                        | not) be readable by anyone.         |             |             |
+------------------------+-------------------------------------+-------------+-------------+

Alle Manpage-Zitate stammen aus http://linuxcommand.org/lc3_man_pages/ssh1.html

 9
Author: Ashutosh Jindal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-11 14:33:10

Berechtigungen sollten nichts damit zu tun haben. Ihr privater Schlüssel ist mit dem Passwort verschlüsselt, daher müssen Sie ihn eingeben, damit der private Schlüssel entschlüsselt und verwendet werden kann.

Sie können erwägen, einen ssh-Agenten auszuführen, der entschlüsselte Schlüssel zwischenspeichern und an Anwendungen liefern kann, die sie benötigen.

 7
Author: cdhowie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-11-26 22:07:13

Es ist richtig - das Verzeichnis mit Ihrem .ssh-Verzeichnis darf nicht durch Gruppe oder andere beschreibbar sein. Daher ist chmod go-w ~ die nächste logische Sache, die Sie versuchen sollten, wenn Sie beim ssh ' ing nach dem Ausführen von ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys immer noch nach einem Kennwort gefragt werden, vorausgesetzt, Sie weisen dem Befehl ssh-keygen keine Passphrase zu, und Ihre .ssh-Verzeichnis befindet sich in Ihrem Home-Verzeichnis.

 5
Author: mikentalk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-04-17 20:20:44