42 votes

La clé SSH me demande un mot de passe?

J'ai une paire de clés publique/privée. Aucune des deux n'a de mot de passe associé.

Chaque fois que j'essaie de me connecter en ssh en utilisant la clé privée ou publique (et je suis presque certain que je devrais utiliser uniquement la clé publique), on me demande un mot de passe, ce qui m'empêche bien sûr de me connecter.

Quelqu'un a une idée de comment contourner cela ? Est-ce que je tape une commande de manière incorrecte ? J'essaie de me connecter à un serveur que j'ai configuré dans mon fichier ~/.ssh/config (correctement, car cette configuration exacte fonctionne sur un autre serveur) avec la clé stockée dans ~/.ec2/key.ppk

J'ai également essayé d'utiliser puttygen.exe pour générer une nouvelle clé privée AVEC un mot de passe, et lorsque je tape le mot de passe, ça échoue toujours.

32voto

Marcin Rybacki Points 411

Tout d'abord, c'est la clé privée qui aura la phrase secrète. Ceci est validé par la clé publique stockée sur le serveur distant.

La meilleure supposition est que vous essayez d'utiliser un format de clé privée putty (ppk) avec openssh, cela ne fonctionne pas.... PuTTYgen a une option d'exportation pour openssh si c'est le cas.

ssh-rsa AAAAB3NzaC1y...... etc

Je suppose également que le serveur auquel vous essayez de vous connecter en ssh a correctement stocké votre clé publique dans le fichier de clé autorisé (généralement dans ~/.ssh/authorized_keys).

Une autre hypothèse serait que la clé correcte n'est pas sélectionnée. Voici quelques choses que j'essayerais :

Réinitialiser la phrase secrète des clés en utilisant ssh-keygen, comme ceci...

$ ssh-keygen -f ~/.ec2/key.ppk -p

Cela confirmera si votre clé a déjà une phrase secrète ou non.

Ensuite, j'essaierais de me connecter en utilisant une sortie verbeuse, en spécifiant explicitement votre clé publique en sortie :

$ ssh host -i ~/.ec2/key.ppk -vvv

Cela vous donnera une meilleure idée de ce qui se passe.

21voto

dfrankow Points 579

Vous pourriez exécuter ssh-agent. Voir ici pour une discussion.

La version abrégée qui a fonctionné pour moi (en bash) :

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-rnRLi11880/agent.11880; export SSH_AUTH_SOCK;
SSH_AGENT_PID=11881; export SSH_AGENT_PID;
echo PID de l'agent 11881;

J'ai pris les 3 lignes qu'il affiche, et les ai exécutées. Une autre façon de faire est de prendre la sortie de -s :

$ eval `ssh-agent -s`

Ensuite j'ai ajouté mes informations d'identification :

$ ssh-add ~/.ssh/id_rsa
Entrez le mot de passe pour /home/me/.ssh/id_rsa : 
Identité ajoutée : /home/me/.ssh/id_rsa (/home/me/.ssh/id_rsa)

Maintenant l'agent fournit les informations d'identification au lieu de devoir taper mon mot de passe.

Je crois que ssh-agent disparaît quand le shell le fait, donc cela devrait être scripté au démarrage pour plus de commodité. Le lien que j'ai partagé décrit aussi comment le scripter.

8voto

Ola Ström Points 247

Vérifiez que la clé privée id_rsa ne contient pas de sauts de ligne supplémentaires à la fin, car dans certains cas, des sauts de ligne supplémentaires feront demander le mot de passe à ssh-keygen, essayez ceci :

sed  '/^$/d' /chemin/vers/clé > id_rsa

test :

ssh-keygen -yf id_rsa

4voto

ShaneC Points 502

Lorsque vous configurez votre clé publique, vous avez probablement (peut-être involontairement) configuré un mot de passe.

Vous devez probablement recommencer à zéro - Je n'ai pas utilisé puttygen, mais vous pouvez supprimer (ou renommer) la clé publique dans votre répertoire .ssh, utiliser ssh-keygen pour en générer une nouvelle (en veillant à ne pas fournir de mot de passe), puis partager la clé publique dans le fichier authorized_keys sur le serveur auquel vous essayez de vous connecter.

Vous devrez peut-être également supprimer votre ancienne clé avec mot de passe du fichier authorized_keys sur le serveur auquel vous vous connectez.

3voto

Borgh Points 101

Une chose à vérifier, si votre fichier sshd_config a StrictModes=yes, alors le répertoire $HOME ou le répertoire $HOME/.ssh ne doit pas être inscriptible par le groupe ou par les autres. Sinon, l'authentification échoue quoi qu'il en soit.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X