web-dev-qa-db-fra.com

SSH sans mot de passe ne fonctionne que si je suis déjà connecté à SSH

J'ai donc configuré ssh sans mot de passe en utilisant les éléments suivants: Comment puis-je configurer une connexion SSH sans mot de passe?

Après avoir configuré cela, je m'attendrais à ne pas avoir besoin d'un mot de passe pour ssh. Mon problème est que lors de ma première connexion à ssh, il me demandera un mot de passe, mais des sessions supplémentaires s'ajouteront à et non à un mot de passe. .

J'ai déjà vérifié mon sshd_config pour m'assurer qu'il contient:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  %h/.ssh/authorized_keys

Je suis presque sûr que mes autorisations sont correctes, car si elles n'étaient pas alors ssh sans mot de passe ne fonctionnerait pas du tout.

Pour ajouter plus de "fun" à ce problème, j'ai remarqué que lorsque je redémarre mon ordinateur (l'ordinateur client ou l'ordinateur serveur ssh), parfois cela fonctionnera. Puis, lorsque j'arrête l'ordinateur et que je l'essaie à nouveau le lendemain, cela ne fonctionne plus. C'est peut-être complètement aléatoire, mais c'est quelque chose que j'ai remarqué.

5
henry

Ceci est un problème courant avec la maison cryptée et a reçu de nombreuses réponses, par exemple sur nix , mais est couvert même de manière officielle documentation Ubunt .

Ceci est probablement dû au fait que votre répertoire personnel (et donc la clé) n'est pas accessible pendant la connexion. Cela peut être dû au fait que votre maison est montée à partir d'un lecteur réseau (sur un système partagé) après la connexion ou que votre répertoire personnel est crypté (généralement des installations de postes de travail).

La résolution de ce problème est compliquée, mais je vais jeter un œil à la discussion. La solution consiste à déplacer la AuthorizedKeysFile vers un autre emplacement accessible ou la mémoire globale des clés (/etc/security/authorized_keys), ou une sorte de système de gestion de l'authentification unique (IPA, LDAP), qui obtiendra votre clé du serveur d'annuaire (oui, peut être locale). Dépend de combien de contrôle du système cible que vous avez.

La meilleure solution est probablement de stocker vos clés ailleurs, en modifiant la valeur dans sshd_config:

AuthorizedKeysFile /etc/ssh/%u/authorized_keys

Quoi qu’il en soit, si vous déplacez votre authorized_keys, assurez-vous qu’il dispose des autorisations appropriées et compte avec le fait que, si vous vous connectez à l’aide de la clé publique, vous ne pourrez pas accéder à votre répertoire personnel (celui-ci est crypté par votre mot de passe!), sauf si vous modifiez la façon dont il est chiffré.

3
Jakuje