SSH, fichier authorized_keys et répertoire personnel crypté…
Hypothèse : vous avez crypté (via ecryptfs par exemple) votre disque ou votre répertoire personnel (/home/user1), vous avez installé un serveur SSH sur votre machine afin d’y accèder à distance via un client SSH en utilisant des clés privées/publiques.
Problême: sans paramétrage spécifique, vous risquez de rencontrer des difficultés. En effet, le fichier « authorized_keys » lu par SSH étant stocké par défaut dans le sous-répertoire /home/user1/.ssh et lors de la connexion SSH ce répertoire étant crypté, l’accès au fichier « authorized_keys » ne sera pas possible ce qui provoquera une erreur côté client SSH.
Solution : déplacer le fichier « authorized_keys » en dehors du répertoire crypté et changer le paramétrage de votre serveur SSH en conséquence
Vous pouvez par exemple procéder ainsi :
- créer un sous-répertoire « user1 » dans /etc/ssh/
mkdir /etc/ssh/user1
- lui attribuer comme propriétaire « user1 » et les droits « 700 »
chown user1:user1 /etc/ssh/user1 chmod 700 /etc/ssh/user1
- y copier le fichier « authorized_keys » et lui définir les droits « 600 »
cp /home/user1/.ssh/authorized_keys /etc/ssh/user1/authorized_keys chmod 600 /etc/ssh/user1/authorized_keys
Remarque : vous devez appliquer cette procédure pour tous les utilisateurs souhaitant se connecter via SSH
- changer le paramétrage de votre serveur SSH en modifiant dans le fichier « /etc/ssh/sshd_config » l’option « AuthorizedKeysFile »
"AuthorizedKeysFile %h/.ssh/authorized_keys" devient ainsi "AuthorizedKeysFile %h/.ssh/authorized_keys /etc/ssh/%u/authorized_keys"
Remarque : le « %u » représente l’identifiant de l’utilisateur désirant se connecter
- Relancer le serveur SSH
service ssh restart