Bonjour,
après avoir tout bien fait pour pouvoir me connecter au travers d'SSH sans mot de passe, authentification par clefs, je dois toujours fournir ce mot de passe, et ça m'énerve.
Ce que j'ai fait (Fedora 25 côté client et serveur), en suivant SSH : Authentification par clé :
- sur le client : génération de la paire de clefs
ssh-keygen -t dsa
les deux fichiers id_dsa
et id_dsa.pub
se trouvent bien dans ~/.ssh/
- copie des clefs vers le serveur :
ssh-copy-id -i ~/.ssh/id_dsa.pub user@ip_machine
- sur le serveur, modif. de
/etc/ssh/sshd_config
comme suit :
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
ChallengeResponseAuthentication yes
PermitRootLogin no
- sur le client j'ai créé le fichier
~/.ssh/config
suivant :
Host serveur
HostName 192.168.1.46
User popol
Port 22
IdentityFile ~/.ssh/.id_dsa
popol
étant l'utilisateur côté serveur.
- et enfin côté client, j'ai modifié les droits des fichiers de
~/.ssh/
:
ls -alF .ssh
total 24
drwx------. 2 manu manu 4096 4 mai 20:49 ./
drwx------. 82 manu manu 4096 4 mai 20:42 ../
-rw-------. 1 manu manu 86 4 mai 20:42 config
-rw-------. 1 manu manu 668 28 avril 22:56 id_dsa
-rw-------. 1 manu manu 602 28 avril 22:56 id_dsa.pub
-rw-r--r--. 1 manu manu 174 4 mai 20:49 known_hosts
J'ai bien tout bien fait, non ? Et ben ça marche pô ! SSH me demande encore le mot de passe du compte.
J'ai parcouru l'interweb de long en large et je sèche. À l'aideeeeeeeee …
# vérifications supplémentaires
Posté par stiffux . Évalué à 2. Dernière modification le 04 mai 2017 à 21:08.
As-tu redémarré le service sshd après modification de la configuration ?
Pour pousser l'analyse plus loin :
côté client : ssh -vvv pour avoir les traces de communications avec le serveur
côté serveur regarde les logs du service SSHD en lançant son exécution avec les paramètres pour qu'il soit plus verbeux.
D'un côté ou de l'autre la clef SSH publique ou privée n'est pas vu : côté client c'est la clef publique et côté serveur la clef privée.
Je n'utilise jamais cette commande "ssh-copy-id -i ~/.ssh/id_dsa.pub user@ip_machine" mais l'objectif est d'avoir la clef privée stocké sur le serveur. Vérifie qu'elle y soit car en paramètre tu précises la clef publique.
[^] # Re: vérifications supplémentaires
Posté par deuzene (site web personnel) . Évalué à 1.
Merci.
Oui le service à été redémarré.
Je n'ai pas regardé les logs côté serveur, mais pour ssh -vvv regarde ma réponse plus bas.
En fait j'ai utilisé ssh-keygen user@machine, sans préciser le nom du fichier. Et oui la clef est bien sur le serveur :<
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
# j'ai eu le cas aujourd'hui avec une redhat 6.4
Posté par NeoX . Évalué à 3.
en fait il fallait changer les droits du dossier /root
il etait en 770 (drwxrwx---)
ca a marché quand j'ai mis 700 (drwx------)
[^] # Re: j'ai eu le cas aujourd'hui avec une redhat 6.4
Posté par deuzene (site web personnel) . Évalué à 1.
J'ai oublié de le dire, mais j'ai aussi fait ça (chmod 700 sur ~/.ssh/ et chmod 600 sur les fichiers).
Merci.
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
[^] # Re: j'ai eu le cas aujourd'hui avec une redhat 6.4
Posté par NeoX . Évalué à 2.
et moi je te parles de /root
pas de .ssh
[^] # Re: j'ai eu le cas aujourd'hui avec une redhat 6.4
Posté par deuzene (site web personnel) . Évalué à 1.
Désolé d'insister, mais je ne pige pas trop. Côté serveur j'ai :
Donc dr-xr-x---. root/, c'est lui que je dois modifié ? Ça ne me semble pas très logique, c'est pour ça.
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
[^] # Re: j'ai eu le cas aujourd'hui avec une redhat 6.4
Posté par NeoX . Évalué à 2.
oui, tu vois ici que les droits sont dr-xr-x---
j'avais le meme cas que toi ce matin
j'ai changé les droits en drwx------ (700) et ca a marché directement
[^] # Re: j'ai eu le cas aujourd'hui avec une redhat 6.4
Posté par deuzene (site web personnel) . Évalué à 1.
Merci de ta patience. Mais ça n'a rien changé :<
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
# Seveur
Posté par Lol Zimmerli (site web personnel, Mastodon) . Évalué à 4. Dernière modification le 04 mai 2017 à 21:53.
Sur le serveur, la clé doit être dans ~/.ssh/authorized_keys et ce fichier doit être en 0600. Le dossier .ssh, comme mentionné plus haut, doit être en 0700.
Ensuite, si ça ne passe toujours pas, il y a possibilité de lancer sur le client avec du debug:
ssh -vvv user@serveur
Il faudra ensuite analyser la sortie.
La gelée de coings est une chose à ne pas avaler de travers.
# authorized_keys
Posté par ymorin . Évalué à 3.
Sur le serveur, tu doit créer le fichier
~/.ssh/authorized_keys
. Ce fichier devracontenir chaque clé publique que tu veux autoriser à se connecter à ton serveur.
Dans ton case, copie le contenu de
~/.ssh/id_dsa.pub
de ton client, et met ledans
~/.ssh/authorized_keys
de ton serveur.Comme dis plus haut,
~/.ssh/
doit être0700
et~/.ssh/authorized_keys
doitêtre
0600
.Hop,
Moi.
# Pour répondre à tous (mais pas à moi)
Posté par deuzene (site web personnel) . Évalué à 1.
Les droits sur le dossier .ssh étaient déjà fixés à 700, et sur les fichiers 600.
J'ai lancé SSH en mode verbeux (ssh -vvv) et j'ai repéré deux choses :
et surtout :
mmh …
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
[^] # Re: Pour répondre à tous (mais pas à moi)
Posté par Marotte ⛧ . Évalué à 3. Dernière modification le 05 mai 2017 à 00:03.
Est-ce que ça fait pareil avec une clé RSA ?
Sinon il doit falloir ajouter DSA aux types de clé acceptés. C’est peut-être dans le fichier sshd_config que ça se configure… là comme ça je ne sais pas.
[^] # Re: Pour répondre à tous (mais pas à moi)
Posté par NeoX . Évalué à 2.
ton cas semble indiqué l'usage d'une clef qui n'est pas expressement autorisé sur le serveur.
j'ai eu le cas recemment, ou apres un upgrade du service ssh il ne prenait plus les anciennes clef (dsa, rsa)
il avait fallu ajouter l'option PubkeyAcceptedKeyTypes avec les types dsa et rsa pour que cela fonctionne
[^] # Re: Pour répondre à tous (mais pas à moi)
Posté par deuzene (site web personnel) . Évalué à 1.
Oups. Je ne sais pas ce que j'ai mal fait en voulant ajouter
PubkeyAcceptedKeyTypes dsa
mais je ne peux plus me connecter ! On verra ça plus tard, il faut que je chope un écran et un clavier.Merci.
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
[^] # Re: Pour répondre à tous (mais pas à moi)
Posté par deuzene (site web personnel) . Évalué à 1.
Effectivement j'ai viré
PubkeyAcceptedKeyTypes
de sshd_config et j'ai pu me reconnecter (toujours avec mdp).« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
[^] # Re: Pour répondre à tous (mais pas à moi)
Posté par Marotte ⛧ . Évalué à 2.
J’ai trouvé ça : https://superuser.com/questions/1016989/ssh-dsa-keys-no-longer-work-for-password-less-authentication?lq=1 ça date d’il y a deux ans, sur Fedora 23…
Je suis vraiment pas spécialiste mais, d’après le lien :
La syntaxe de l’option devrait avoir cette forme :
PubkeyAcceptedKeyTypes=+ssh-dss
(bon ici c’est dss… mais peut-être que pour toi ce serait=+ssh-dsa
) ?Je vais peut-être dire une ânerie mais il me semble qu’en plus de ta paire de clés utilisateur ton serveur SSH a une paire de clés d’hôte (
/etc/ssh/ssh_host_*_key.*
). Du coup si c’est par exemple une clé RSA qui est utilisée, il faut probablement que pour l’optionPubkeyAcceptedKeyTypes
tu indiques les deux types (RSA et DSA) ?[^] # Re: Pour répondre à tous (mais pas à moi)
Posté par deuzene (site web personnel) . Évalué à 1.
Merci, t'es plus pugnace que moi ;)
PubkeyAcceptedKeyTypes=+ssh-dss
est la bonne syntaxe, j'avais, comme un bourrin, misPubkeyAcceptedKeyTypes dsa
ce qui m'a empêcher ensuite de me connecter (connexion refused).Bon, ceci-dit il me demande toujours mon mdp. Ce n'est pas très embarrassant pour l'usage que j'en ai, mais j'aimerais bien comprendre. D'autant que ce n'est pas la première fois que je fait ça, et d'habitude ça marche en deux coup de cuiller à pot.
Ce qui m'ennuie, c'est de ne pouvoir automatiser la connexion dans un script :<
Merci à tous.
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
[^] # Re: Pour répondre à tous (mais pas à moi)
Posté par Marotte ⛧ . Évalué à 2.
Ce serait pas :
PubkeyAcceptedKeyTypes=+ssh-dsa+ssh-rsa
ou un truc du genre ?Tu peux essayer avec
PubkeyAcceptedKeyTypes=+ssh-rsa
et une paire de clés RSA ?[^] # Re: Pour répondre à tous (mais pas à moi)
Posté par NeoX . Évalué à 2.
faudra que je regarde sur mes machines au boulot
je crois que j'ai fait une modif recemment pour un truc du genre.
# RTFL
Posté par ranDom (site web personnel) . Évalué à 2.
Read The F…g Logs
sudo journalctl -xe
te donneras toutes les informations pour résoudre le problème. Ça ressemble un pb de permissions sur ~popol/.. ~popol ou/et ~popol/.ssh et son contenu
Et pour éviter de se retrouver à la porte suite à une mauvaise configuration ssh, une fois que tu as modifié la conf du serveur et relancé celui-ci, tente une //nouvelle// connexion sur le serveur pour valider les paramètres.
my 2¢
[^] # Re: RTFL
Posté par Benoît Sibaud (site web personnel) . Évalué à 5.
Et surtout avant de le relancer :
[^] # Re: RTFL
Posté par ranDom (site web personnel) . Évalué à 1.
Ta configuration peut être syntaxiquement correcte, mais tu peux quand même te retrouver à la porte suite à une clé mal installée.
Ma méthode a le mérite de tester que la connexion reste possible avec la nouvelle configuration.
# Je dis peut être une connerie
Posté par Axone . Évalué à 4. Dernière modification le 05 mai 2017 à 21:04.
Tu ne te serais pas trompé dans ton fichier de config sur ton client (~/.ssh/config) :
J'aurais plutôt mis
[^] # Re: Je dis peut être une connerie
Posté par deuzene (site web personnel) . Évalué à 4.
Bien vu !
En fait pour ce forum j'ai fait un copié-collé depuis le wiki de Fedora et j'avais remarqué, et corrigé de mon côté, cette coquille. Faudrait que je fasse remonter.
Merci.
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.