web-dev-qa-db-fra.com

Autorisations de clé SSH Paramètres Chmod?

Je dois utiliser SSH sur ma machine pour accéder à mon site Web et à ses bases de données (création d'un lien symbolique, mais je m'éloigne du sujet).

Problème suivant: j'entre la commande: ssh-keygen -t dsa
Pour générer une paire de clés dsa publique/privée. Je l'enregistre par défaut (/home/user/.ssh/id_dsa): Et entrez deux fois la phrase secrète

alors je récupère ceci:

AVERTISSEMENT: FICHIER CLÉ PRIVÉ NON PROTÉGÉ!
Les autorisations 0755 pour '/home/etc.ssh/id_rsa' sont trop ouvertes. Il est recommandé que vos fichiers de clés privées ne soient PAS accessibles aux autres. Cette clé privée sera ignorée. mauvaises autorisations: ignorer la clé: [puis le CHEMIN DE FICHIER dans VAR/LIB/SOMEWHERE]

Maintenant, pour contourner cela, j'ai ensuite essayé-

Sudo chmod 600 ~/.ssh/id_rsa         Sudo chmod 600 ~/.ssh/id_rsa.pub    

Mais peu de temps après que mon ordinateur a gelé, et lors de la reconnexion, il y a eu un could not find .ICEauthority error. J'ai contourné ce problème et j'ai supprimé les fichiers SSH, mais je veux pouvoir utiliser les autorisations appropriées pour éviter ces problèmes à l'avenir. Comment dois-je configurer ICEauthority, ou où dois-je enregistrer les clés SSH - ou quelles autorisations doivent-ils avoir? Serait-il préférable d'utiliser une machine virtuelle?

Tout cela est très nouveau et je suis sur une courbe d'apprentissage très abrupte, donc toute aide appréciée.

73
crissixpaul

chmod 600 ~/.ssh/id_rsa; chmod 600 ~/.ssh/id_rsa.pub (c'est à dire. chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub) sont corrects.

chmod 644 ~/.ssh/id_rsa.pub (c'est à dire. chmod a=r,u+w ~/.ssh/id_rsa.pub) serait également correct, mais chmod 644 ~/.ssh/id_rsa (c'est à dire. chmod a=r,u+w ~/.ssh/id_rsa) ne serait pas. Votre clé publique peut être publique, ce qui compte, c'est que votre clé privée soit privée.

Aussi votre .ssh le répertoire lui-même doit être accessible en écriture uniquement par vous: chmod 700 ~/.ssh ou chmod u=rwx,go= ~/.ssh. Vous devez bien sûr pouvoir le lire et y accéder aux fichiers (autorisation d'exécution). Il n'est pas directement dangereux si les autres peuvent le lire, mais il n'est pas utile non plus.

Vous n'avez pas besoin de Sudo. N'utilisez pas Sudo pour manipuler vos propres fichiers, cela ne peut conduire qu'à des erreurs.

L'erreur sur .ICEauthority n'est pas lié aux commandes chmod que vous affichez. Soit c'est une coïncidence, soit vous avez exécuté d'autres commandes que vous ne nous montrez pas.

    chmod 600 ~/.ssh/id_rsa
    chmod 600 ~/.ssh/id_rsa.pub

ou

    # u: user        r: read
    # g: group       w: write
    # o: others      x: execute

    chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub

Vous pouvez également rendre votre clé publique lisible

    chmod 644 ~/.ssh/id_rsa.pub # chmod a=r,u+w ~/.ssh/id_rsa.pub

mais pas votre clé privée. Il est donc obligatoire d'avoir:

    chmod 600 ~/.ssh/id_rsa # chmod a=r,u+w ~/.ssh/id_rsa

Aussi votre .ssh le répertoire lui-même doit être accessible en écriture uniquement par vous:

    chmod 700 ~/.ssh

ou

    chmod u=rwx,go= ~/.ssh

Vous devez bien sûr pouvoir le lire et y accéder aux fichiers (exécuter la permission):
il n'est pas directement nocif si les autres peuvent le lire, mais il n'est pas utile non plus.

Vous n'avez pas besoin de Sudo. N'utilisez pas Sudo pour manipuler vos propres fichiers, cela ne peut conduire qu'à des erreurs.

L'erreur sur .ICEauthority n'est pas liée aux commandes chmod que vous affichez. Soit c'est une coïncidence, soit vous avez exécuté d'autres commandes que vous ne nous montrez pas.

3
Scrooge McDuck

Je veux ajouter aux réponses ci-dessus que pour moi mon répertoire personnel (~/) devait également disposer des autorisations 755, quelles que soient les autorisations de ~/.ssh et les fichiers qu'il contient. (C'était sur un Synology NAS, peut ne pas s'appliquer à tous les linux)

0
hoelk