Autorisations de clé SSH Paramètres Chmod?

63

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

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

alors je récupère ceci:

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

Maintenant, pour contourner ce problème, j’ai essayé

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

Mais peu de temps après que mon ordinateur se soit gelé - et lors de la connexion, il y avait un could not find .ICEauthority error. J'ai contourné ce problème et 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-elles avoir? L'utilisation d'une machine virtuelle serait-elle préférable?

Ceci est tout nouveau et je suis sur une courbe d'apprentissage très raide, donc toute aide appréciée.

Crissixpaul
la source
typo- désolé, un seul jeu de clés a été généré!
Crissixpaul
les autorisations sur .ssh dir sont tout aussi importantes que les autorisations de clé. Il devrait être 600. Pour résoudre fonctionner: chmod -R 600 ~/.ssh.
KWubbufetowicz
4
En fait, les autorisations de répertoire .ssh doivent être 700 et non 600. L'autorisation d'exécution est celle qui vous donne accès à ce qui se trouve dans ce répertoire. Donc, les commandes correctes devraient être chmod 700 $HOME/.sshetchmod 600 $HOME/.ssh/id_rsa
MelBurslan
L'erreur concernant .ICEauthority n'est pas liée aux chmodcommandes que vous affichez. Soit c'est une coïncidence, soit vous exécutez d'autres commandes que vous ne nous indiquez pas.
Gilles 'SO- arrête d'être méchant'

Réponses:

92

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

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

De plus, votre .sshrépertoire lui-même ne doit être accessible en écriture que par vous: chmod 700 ~/.sshou chmod u=rwx,go= ~/.ssh. Vous devez bien sûr pouvoir le lire et accéder aux fichiers qu'il contient (autorisation d'exécution). Ce n'est pas directement nuisible si les autres peuvent le lire, mais ce n'est pas utile non plus.

Tu n'as pas besoin sudo. Ne pas utiliser sudopour manipuler vos propres fichiers, cela ne peut que conduire à des erreurs.

L'erreur à propos de .ICEauthorityn'est pas liée aux chmodcommandes que vous affichez. Soit c'est une coïncidence, soit vous exécutez d'autres commandes que vous ne nous indiquez pas.

Gilles, arrête de faire le mal
la source
Que doivent être les autorisations sur les ~ / .ssh / known_hosts?
nikc
0

Je souhaite 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 ~/.sshet les fichiers qui y figurent. (C'était sur un Synology NAS, cela pourrait ne pas s'appliquer à tous les linux)

Hoelk
la source