La connexion SSH à l'aide des touches SSH ne fonctionne qu'une fois après la connexion sur site.

2

J'ai un problème intéressant avec SSH. Voici la configuration.

Mon client (sous Ubuntu 17.04) a des clés ssh publiques et privées. J'ai copié la clé publique sur le serveur (exécutant Ubuntu Server 16.04.3 LTS) à l'aide de la ssh-copy-idcommande. J'ai vérifié que cela fonctionnait en consultant le fichier authorised_keys sur le serveur. la clé publique de mon client est la seule répertoriée.

Maintenant sur le problème. Je peux me connecter au serveur à partir du client via ssh, en utilisant ma clé privée ssh. Mais après que je me suis déconnecté et que je tente à nouveau de ssh, j'obtiens le message d'erreur suivant:

Permission denied (publickey).

Lorsque je me connecte au serveur sur la console, j'utilise mon mot de passe pour me connecter et cela fonctionne bien. Ensuite, lorsque je tente à nouveau de SSH à partir de mon client, cela fonctionne à nouveau. Et je peux me déconnecter et me connecter autant de fois que je le souhaite. Dès que je me déconnecte de la console sur le serveur (comme si j'étais physiquement connecté au serveur auparavant), je pouvais SSH de mon client exactement UNE fois de plus. Puis dès que cette session est terminée, je reçois à Permission denied (publickey).nouveau l' erreur lors de toutes les tentatives ultérieures de SSH. Des idées?

Voici mon fichier de configuration ssh sur mon client:

Host sauron
        HostName 192.168.1.191
        User joe
        PubKeyAuthentication yes
        IdentityFile id_rsa

Une dernière chose à mentionner est que le SSD entier du serveur est chiffré. Je dois le déverrouiller chaque fois que je démarre le serveur avec un mot de passe de cryptage. Pas sûr que ce soit pertinent. Je suppose que cela pourrait être un problème d'autorisations, bien que je n'en sois pas sûr non plus. Des suggestions seraient très appréciées, et s'il vous plaît demander si vous avez besoin de clarification sur quelque chose.

Jeklund
la source
Les répertoires personnels individuels sont-ils chiffrés en plus du chiffrement intégral du disque?
muru
J'ai vérifié mon dossier personnel et je me suis rendu compte qu'il y en avait un .ecryptfs. Je dirais donc qu'il existe un cryptage au niveau du répertoire personnel.
Jeklund
Votre commentaire m'a conduit à un article expliquant comment déplacer le authorized_keysfichier vers un emplacement non chiffré, puis le rechercher avec le sshd_configfichier. Cela l'a réparé! Je suis maintenant capable de me connecter avec les clés ssh à distance et sans mot de passe. Si j'ai besoin d'accéder au répertoire de départ crypté, je dois quand même saisir mon mot de passe, mais il faut s'y attendre.
Jeklund
génial! Si vous pouviez résumer ce que vous avez fait à la suite de cet article, cela serait utile pour référence future
muru

Réponses:

0

Grâce au commentaire de @muru sur les répertoires de départ cryptés, j'ai été amené à cet article sur la façon de gérer cela.

Le TLDR; de cet article est comme suit et résolu mon problème:

  1. Créez un répertoire /etc/ssh/avec le même nom que l'utilisateur de connexion que vous utilisez. Dans mon cas: /etc/ssh/joe.

  2. Copiez le authorized_keysfichier dans ce répertoire.

  3. Définissez les autorisations correctes de ce fichier et de ce répertoire sur l'utilisateur.

  4. Ajoutez la ligne suivante au fichier sshd_config:

AuthorizedKeysFile /etc/ssh/%u/authorized_keys

  1. Redémarrez SSH.

Tout est réglé!

Jeklund
la source