J'ai modifié mes autorisations dans mon dossier .ssh
et maintenant, lorsque j'utilise un logiciel qui utilise ma clé privée, je dois taper mon mot de passe à chaque fois. Quelles doivent être mes autorisations sur mon fichier id_rsa
pour ne pas avoir à saisir 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
En règle générale, vous souhaitez que les autorisations soient:
.ssh
répertoire: 700 (drwx------)
.pub
): 644 (-rw-r--r--)
id_rsa
): 600 (-rw-------)
755 (drwxr-xr-x)
).Je suppose que vous voulez dire que vous devez entrer votre mot de passe système/utilisateur à chaque fois, et que vous n'y étiez pas auparavant. La réponse de cdhowie suppose que vous définissez un mot de passe/une phrase secrète lors de la génération de vos clés. Si tel est le cas, vous devrez entrer votre mot de passe à chaque fois sauf si vous utilisez un agent ssh.
Je me débattais avec cela pour toujours et j'ai finalement compris ce dont on avait besoin. Remplacez $USER
partout par le nom d'utilisateur SSH auquel vous souhaitez vous connecter sur le serveur. Si vous essayez de vous connecter en tant que root
, vous devrez utiliser /root/.ssh
etc., au lieu de /home/root/.ssh
, comme c'est le cas pour les utilisateurs non root.
chmod go-w /home/$USER
chmod 700 /home/$USER/.ssh
chmod 644 /home/$USER/.ssh/authorized_keys
user
possède les fichiers/dossiers et non root
: chown user:user authorized_keys
et chown user:user /home/$USER/.ssh
ssh-keygen
) dans le fichier authorized_keys
de l'utilisateur sur le serveur..ssh
correct que vous avez modifié. Sinon, utilisez usermod -d /home/$USER $USER
pour résoudre le problème.service ssh restart
.ssh
de l'utilisateur local et que vous vous connectez: ssh [email protected]
.Assurez-vous également que votre répertoire personnel n'est pas accessible en écriture aux autres utilisateurs.
chmod g-w,o-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 utilisable.
Vous pourriez envisager d’exécuter un agent ssh, qui peut mettre en cache les clés déchiffrées et les fournir aux applications qui en ont besoin.
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 s'exécute après l'exécution de 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. .