Recherche de site Web

Comment définir les autorisations correctes du répertoire SSH sous Linux


Pour que SSH fonctionne correctement, il nécessite des autorisations correctes sur le répertoire ~/.ssh ou /home/username/.ssh : l’emplacement par défaut pour tous les fichiers de configuration et d’authentification ssh spécifiques à l’utilisateur. Les autorisations recommandées sont lecture/écriture/exécution pour l’utilisateur et ne doivent pas être accessibles par le groupe et d’autres personnes.

En outre, ssh exige également que les fichiers du répertoire aient des autorisations de lecture/écriture pour l’utilisateur et ne soient pas accessibles par d’autres. Dans le cas contraire, un utilisateur peut rencontrer l’erreur suivante :

Authentication refused: bad ownership or modes for directory

Ce guide explique comment définir les autorisations correctes sur le répertoire .ssh et les fichiers qui y sont stockés, sur les systèmes Linux.

Définir les autorisations correctes du répertoire SSH sous Linux

Si jamais vous rencontrez l’erreur ci-dessus, vous pouvez définir les autorisations correctes du répertoire ssh sur le répertoire .ssh à l’aide de la commande chmod.

# chmod u+rwx,go-rwx ~/.ssh
OR
chmod  0700 ~/.ssh

Pour vérifier les permissions sur le répertoire ~/.ssh, utilisez la commande ls avec les drapeaux -l et -d, comme ceci :

# ls -ld .ssh/

Voici quelques-uns des fichiers que vous trouverez dans le répertoire ~/.ssh :

  • Fichier de clé privée (par exemple id_rsa) – la clé privée pour l’authentification, qui contient des informations très sensibles, par conséquent, elle doit avoir des autorisations de lecture et d’écriture pour le propriétaire et ne pas être accessible par le groupe et d’autres, sinon, SSH refusera de se connecter.
  • Clé publique (par exemple, fichier .pub) – La clé publique pour l’authentification, qui contient également des informations sensibles, elle doit donc avoir des autorisations de lecture et d’écriture pour le propriétaire, une autorisation de lecture seule par groupe et autres.
  • authorized_keys – contient la liste des clés publiques qui peuvent être utilisées pour se connecter en tant qu’utilisateur. Il n’est pas très sensible, mais doit disposer d’autorisations de lecture et d’écriture pour le propriétaire et ne pas être accessible par le groupe et d’autres personnes.
  • known_hosts : stocke une liste de clés d’hôte pour tous les hôtes auxquels l’utilisateur ssh s’est connecté. Il doit disposer d’autorisations de lecture et d’écriture pour le propriétaire et ne pas être accessible par des groupes et d’autres personnes.
  • config : fichier de configuration par utilisateur, qui doit disposer d’autorisations de lecture et d’écriture pour le propriétaire et ne doit pas être accessible par le groupe et d’autres personnes.

Par défaut, les fichiers sous le répertoire ~/.ssh sont créés avec les autorisations correctes définies. Pour vérifier leurs autorisations, exécutez la commande suivante dans votre répertoire personnel :

# ls -l .ssh/ 

Si ssh se plaint de mauvaises permissions sur l’un des fichiers ci-dessus, vous pouvez définir les permissions correctes pour n’importe lequel des fichiers comme ceci :

# chmod u+rw,go-rwx .ssh/id_rsa
chmod u+rw,go-rwx .ssh/id_rsa.pub
chmod u+rw,go-rwx .ssh/authorized_keys
chmod u+rw,go-rwx .ssh/known_hosts
chmod u+rw,go-rwx .ssh/config
OR
chmod 600 .ssh/id_rsa
chmod 600 .ssh/id_rsa.pub
chmod 600 .ssh/authorized_keys
chmod 600 .ssh/known_hosts
chmod 600 .ssh/config

En outre, le répertoire personnel d’un utilisateur ne doit pas être accessible en écriture par le groupe ou d’autres personnes, comme illustré dans la capture d’écran suivante.

# ls -ld ~

Pour supprimer les autorisations d’écriture pour le groupe et d’autres personnes sur le répertoire de base, exécutez la commande suivante :

# chmod go-w ~
OR
chmod 755 ~

Vous pouvez également lire les articles suivants relatifs à SSH :

  • Comment sécuriser et renforcer le serveur OpenSSH
  • 5 meilleures pratiques de sécurité pour les serveurs OpenSSH
  • Comment configurer la connexion sans mot de passe SSH sous Linux [3 étapes faciles]
  • Comment bloquer les attaques SSH par force brute à l’aide de SSHGUARD
  • Comment utiliser Port Knocking pour sécuriser le service SSH sous Linux
  • Comment changer le port SSH sous Linux

C’est tout pour l’instant ! Utilisez la section des commentaires ci-dessous pour poser des questions ou ajouter vos réflexions sur ce sujet.

Articles connexes: