SSH: "Les autorisations 0644 pour 'my_key.pub' sont trop ouvertes."

21

Pourquoi est 0644-il -rw-r--r--trop ouvert pour une clé SSH? De plus, je n'ai trouvé aucune fausse autorisation sur le .sshrépertoire ( 0700) ou le répertoire personnel ( 0731).

Btw je reçois cette erreur lors du test de la paraphrase d'une clé via ssh-keygen -y -f my_key.pub

Meilleures salutations

user2820379
la source

Réponses:

7

Vous exécutez peut-être ssh-keygen sur le mauvais fichier. ssh-keygen -yfonctionne sur un fichier de clé privée . Les fichiers ".pub" contiennent normalement la clé publique . Vous avez probablement là un fichier nommé my_key, sans aucune extension, et ce devrait être le mode 0600. C'est le fichier qui devrait contenir la clé privée.

Pour répondre directement à votre question, les clés SSH sont normalement utilisées pour permettre la connexion à des serveurs distants sans mot de passe. La possession de la clé privée permettrait à quelqu'un de se connecter à votre compte sur n'importe quel système qui accepte la clé. ssh-keygen et les autres utilitaires ssh nécessitent que les fichiers de clé privée aient des autorisations restreintes car les fichiers sont sensibles et doivent rester sécurisés.

Kenster
la source
11

0644 n'est pas censé être trop ouvert pour une clé publique, mais est trop ouvert pour votre clé privée.

Votre clé privée doit avoir l'autorisation 0600tandis que votre clé publique a l'autorisation 0644.

Soit dit en passant, vous devez également prendre soin de l'autorisation sur le .sshdossier. Il doit avoir l'autorisation 0700, de sorte que seul vous, le propriétaire, contrôle le dossier.

Quant à votre répertoire personnel, l'autorisation d'écriture n'est pas censée être accordée au groupe et aux autres.

Run chmod go-w /home/usernamedevrait résoudre ce problème.

pallxk
la source
Ne suivez absolument pas ces instructions. Ce n'est PAS ce que vous devez faire. Cela réinitialisera également toutes les autorisations du répertoire de base. Vous devez UNIQUEMENT modifier le .sshdossier et le id_rsafichier lui-même, pas votre répertoire personnel entier!
niftylettuce
9

La seule commande que vous devez exécuter est chmod 600 ~/.ssh/id_rsa. C'est ça.

Cela modifie les autorisations sur le fichier afin que le propriétaire (vous) puisse le lire et l'écrire, ce qui supprimera le message d'erreur que vous recevez.

niftylettuce
la source
Mise à jour de @TwistyImpersonator
niftylettuce
0

Les réponses ci-dessus sont valides, mais avant d'en exécuter chmodpour corriger les autorisations, assurez-vous simplement que votre IdentityFileou vos ~/.ssh/configréférences se réfèrent à votre clé privée. Les novices pourraient mal comprendre cela et faire référence à la clé publique (avec .pubextension) à la place, conduisant ainsi à la même erreur (car les autorisations de fichier de clé publique sont trop ouvertes pour une clé privée).

Javarome
la source