Question Autorisations sur la clé privée dans le dossier .ssh?


J'ai changé mes permissions dans mon .ssh dossier et maintenant, quand j'utilise un logiciel qui utilise ma clé privée, je dois taper mon mot de passe à chaque fois. Quelles devraient être mes autorisations sur mon id_rsa fichier pour ne pas avoir à taper un mot de passe chaque fois que j'utilise une application qui l'utilise?

Actuellement, mes autorisations sont définies sur:

-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

276
2017-11-26 22:04


origine




Réponses:


En général, vous voulez le .ssh autorisations de répertoire à être 700 (drwx------) et la clé publique (.pub fichier) à être 644 (-rw-r--r--). Votre clé privée (id_rsa) devrait être 600 (-rw-------). Enfin, votre répertoire personnel ne doit pas être accessible en écriture par le groupe ou par d’autres 755 (drwxr-xr-x)).

Je suppose que vous voulez dire que vous devez entrer votre mot de passe système / utilisateur à chaque fois, ce que vous n'aviez pas auparavant. La réponse de cdhowie suppose que vous définissiez un mot de passe / une phrase secrète lors de la génération de vos clés, et si vous le faites alors, il vous demandera d'entrer votre mot de passe à moins d'utiliser un agent ssh.


480
2017-11-26 22:24



J'ai trouvé ailleurs que si vous utilisez le fichier authorized_keys, il devrait être chmod'd à 640, soit -rw-r -----. - AnneTheAgile
Où puis-je trouver cette information dans les pages de manuel? - Sonique
Je suis revenu à ce poste environ 30 fois maintenant. Je ne peux pas croire que je ne peux pas m'en souvenir. - JREAM
Les seules choses importantes sont que rien dans .ssh ne soit accessible à quiconque et aucune des clés secrètes ne soit lisible par quiconque. - Markus Kuhn
@Cerin execute permission sur un répertoire permet de lister les fichiers / répertoires enfants immédiats de ce répertoire, les fichiers à l'intérieur du dossier n'héritent pas du bit d'exécution de leur dossier parent. - Thomas


Je me suis débattu avec cela pour toujours et finalement compris ce qui est nécessaire. Remplacer $USER partout avec le nom d'utilisateur SSH que vous souhaitez vous connecter sur le serveur. Si vous essayez de vous connecter en tant que root vous auriez besoin d'utiliser /root/.ssh etc., au lieu de /home/root/.ssh c'est comme ça pour les utilisateurs non root.

  • Le répertoire personnel sur le serveur ne doit pas être accessible en écriture pour les autres: chmod go-w /home/$USER
  • Le dossier SSH sur le serveur nécessite 700 autorisations: chmod 700 /home/$USER/.ssh
  • Le fichier Authorized_keys nécessite 644 autorisations: chmod 644 /home/$USER/.ssh/authorized_keys
  • Sois sûr que user possède les fichiers / dossiers et non root: chown user:user authorized_keys et chown user:user /home/$USER/.ssh
  • Placez la clé publique générée (à partir de ssh-keygen) dans l'utilisateur authorized_keys fichier sur le serveur
  • Assurez-vous que le répertoire personnel de cet utilisateur est défini sur ce que vous attendez de lui et qu'il contient le correct .ssh dossier que vous avez modifié. Sinon, utilisez usermod -d /home/$USER $USER résoudre le problème
  • Enfin, redémarrez ssh: service ssh restart
  • Assurez-vous ensuite que le client dispose des fichiers de clé publique et de clé privée dans l'utilisateur local. .ssh dossier et login: ssh user@host.com

62
2018-06-09 20:39



En ce qui concerne votre premier paragraphe, je suis capable de ssh avec des clés publiques / privées avec un utilisateur sur ma boîte Linux locale (par ex. abc), différent de l'utilisateur sur le serveur distant (par ex. def@123.456.789). Je devais juste m'assurer que l'utilisateur local possédait les fichiers locaux .ssh (par ex. abc:abc, ne pas root:abc) ` - Michael
Merci d'avoir mis toutes les étapes et commandes pour les débutants, Alex. Le vôtre est l'une des réponses les plus utiles ici. - Nav
+1. "Le fichier Authorized_keys nécessite 644 autorisations" <= c'était crucial! - Le Quoc Viet
Si vous donnez le répertoire .ssh 700 mode, alors il y a pas de point en donnant r-- au groupe et aux autres, parce que seulement toi peut "passer par" .ssh alors (en supposant qu'aucun lien physique n'existe pour ces fichiers). La même chose pour la réponse acceptée. La valeur par défaut 755 est suffisante. - user3125367


Assurez-vous également que votre répertoire personnel n'est pas accessible en écriture par les autres utilisateurs.

chmod g-w,o-w ~


31
2018-01-03 03:50



FYI, cette commande suppose que vous êtes connecté en tant qu'utilisateur et non root - Alex W


Les autorisations ne devraient avoir rien à voir avec cela. Votre clé privée est cryptée avec le mot de passe, vous devez donc la saisir pour que la clé privée soit déchiffrée et utilisée.

Vous pouvez envisager d'exécuter un agent ssh, qui peut mettre en cache les clés décryptées et les fournir aux applications qui en ont besoin.


4
2017-11-26 22:07



Merci pour les informations supplémentaires sur l'agent ssh. On dirait qu'il y en a un intégré dans Léopard, donc je pense que je vais le faire. Avoir un peu de mal avec ça mais je vais poser une autre question.
Ne sous-estimez pas les autorisations. Ils entrent définitivement en jeu. - Alex W
@AlexW Ils entrent en jeu dans d'autres aspects de ssh, mais pas dans celui de la question. - cdhowie
Si vous n'avez pas de mot de passe sur les clés privées (whink de scripts appelés à distance automatisés), cela ne vous aidera pas. Les autorisations sont nécessaires ici. - nerdoc


Felipe est correct - le répertoire contenant votre répertoire .ssh ne doit pas être accessible en écriture par groupe ou autre. Ainsi chmod go-w ~ est la prochaine chose logique à essayer si vous êtes toujours invité à entrer un mot de passe lorsque ssh'ing après l'exécution ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys, en supposant que vous n'attribuez pas de phrase secrète dans la commande ssh-keygen et que votre répertoire .ssh se trouve dans votre répertoire personnel.


4
2018-04-17 20:20