[résolu]ssh : activer une connexion exclusivement par clés RSA

ssh : activer une connexion exclusivement par clés RSA [résolu] - Linux et OS Alternatifs

Marsh Posté le 02-01-2006 à 23:35:38    

Bonsoir à tous,
 
Malgré pas mal de recherches et de manips, je n'arrive pas à me connecter  
à sshd via une clé rsa. (La connexion par mot de passe classique marche).
nb : pour l'instant, je réalise les tests sur un unique PC (serveur et client),  
en me connectant en 127.0.0.1.
 
1 / J'ai créé 1 jeu de clés rsa, et les ai copiées dans :
clé privée =>  /home/test/.ssh/ssh_mine
clé publique => /home/test/.ssh/ssh_mine.pub
clé publique => /home/test/.ssh/authorized_keys
 
2 / J'ai activé dans /etc/ssh/ssh_config les lignes :

Code :
  1. PubkeyAuthentication yes
  2. PasswordAuthentication no


3 / J'ai activé dans /etc/ssh/sshd_config les lignes :

Code :
  1. RSAAuthentication yes
  2. PubkeyAuthentication yes
  3. PasswordAuthentication no
  4. PermitEmptyPasswords no
  5. AuthorizedKeysFile %h/.ssh/authorized_keys


4/ A partir d'une console, j'ai tapé :

Code :
  1. ssh -l test -i  /home/test/.ssh/ssh_mine  test@127.0.0.1


5/ La console m'a retourné :

Code :
  1. Enter passphrase for key '/home/test/.ssh/ssh_mine':


6/ J'ai entré ma paraphrase, mais la même question est reposée.
Au bout de 2 cycles identiques, la console a retourné :

Code :
  1. Permission denied (publickey,password,keyboard-interactive).


J'ai probablement oublié quelque chose, mais je ne vois pas quoi...
Pourriez-vous m'aider à trouver le pb ?
 
D'avance merci.


Message édité par kafifi le 05-01-2006 à 20:30:04
Reply

Marsh Posté le 02-01-2006 à 23:35:38   

Reply

Marsh Posté le 03-01-2006 à 18:48:57    

copier la clé sur le serveur.
 


ssh-copy-id -i /home/test/.ssh/ssh_mine.pub test@127.0.0.1


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 03-01-2006 à 20:54:15    

Dark_Schneider a écrit :

copier la clé sur le serveur.


ssh-copy-id -i /home/test/.ssh/ssh_mine.pub test@127.0.0.1



 
Voici le résultat:  

Code :
  1. ssh-copy-id -i /home/test/.ssh/ssh_mine.pub test@127.0.0.1
  2. 29
  3. Permission denied (publickey,password,keyboard-interactive).
  4. Now try logging into the machine, with "ssh 'test@127.0.0.1'", and check in:
  5.   .ssh/authorized_keys
  6. to make sure we haven't added extra keys that you weren't expecting.


Je ne comprends pas ce qui se passe...

Reply

Marsh Posté le 04-01-2006 à 13:21:39    

Hello
  Indique moi les fichiers présent dans /home/test/.ssh (ainsi que leur droits)
  Indique moi aussi les droits du fichier /home/test/.ssh  
 
merci

Reply

Marsh Posté le 04-01-2006 à 22:14:06    

PierreC a écrit :

Hello
  Indique moi les fichiers présent dans /home/test/.ssh (ainsi que leur droits)
  Indique moi aussi les droits du fichier /home/test/.ssh  
merci


Bonsoir,
Je viens d'effacer les fichiers et les clés, et refaire toutes les manips ci-dessous.
J'ai démarré en mode user "test" :

Code :
  1. [test@PCTEST .ssh]$ pwd
  2. /home/test/.ssh
  3. [test@PCTEST .ssh]$ ssh-keygen -t dsa -f clef


Création des clés OK dans /home/test/.ssh
Mais la copie de clef.pub via l'utilitaire ne marche pas :

Code :
  1. [test@PCTEST .ssh]$ ssh-copy-id -i clef.pub test@127.0.0.1
  2. 8
  3. Warning: Permanently added '127.0.0.1' (RSA) to the list of known hosts.
  4. Permission denied (publickey,password,keyboard-interactive).
  5. Now try logging into the machine, with "ssh 'test@127.0.0.1'", and check in:
  6.   .ssh/authorized_keys
  7. to make sure we haven't added extra keys that you weren't expecting.


Droit sur les fichiers :

Code :
  1. [test@PCTEST .ssh]$ ls -l
  2. total 12
  3. -rw-------  1 test test 1264 jan  4 21:40 clef
  4. -rw-r--r--  1 test test 1113 jan  4 21:40 clef.pub
  5. -rw-r--r--  1 test test  391 jan  4 21:41 known_hosts


 
Pour débloquer la situation, j'ouvre /etc/ssh/ssh_config et je modifie la ligne :
PasswordAuthentication no => yes
Cette fois l'outil fonctionne (même si ma manip me semble étrange...) :

Code :
  1. [test@PCTEST .ssh]$ ssh-copy-id -i clef.pub test@127.0.0.1
  2. 8
  3. test@127.0.0.1's password:
  4. Now try logging into the machine, with "ssh 'test@127.0.0.1'", and check in:
  5.   .ssh/authorized_keys
  6. to make sure we haven't added extra keys that you weren't expecting.


J'ouvre une session avec authentification par mot de passe sans problème :

Code :
  1. [test@PCTEST .ssh]$ ssh test@127.0.0.1
  2. test@127.0.0.1's password:
  3. Last login: Tue Jan  3 23:13:38 2006 from pctest


Afin de réaliser une authentification pas clé, je remodifie /etc/ssh/ssh_config  et je modifie la ligne :
PasswordAuthentication yes => no
PubkeyAuthentication yes <= l'autorisation par clé est présente
Mais cela ne marche pas :

Code :
  1. [test@PCTEST .ssh]$ ssh -v test@127.0.0.1
  2. OpenSSH_4.2p1, OpenSSL 0.9.7g 11 Apr 2005
  3. debug1: Reading configuration data /etc/ssh/ssh_config
  4. debug1: Applying options for *
  5. debug1: Connecting to 127.0.0.1 [127.0.0.1] port 22.
  6. debug1: Connection established.
  7. debug1: identity file /home/test/.ssh/identity type -1
  8. debug1: identity file /home/test/.ssh/id_rsa type -1
  9. debug1: identity file /home/test/.ssh/id_dsa type -1
  10. debug1: Remote protocol version 2.0, remote software version OpenSSH_4.2
  11. debug1: match: OpenSSH_4.2 pat OpenSSH*
  12. debug1: Enabling compatibility mode for protocol 2.0
  13. debug1: Local version string SSH-2.0-OpenSSH_4.2
  14. debug1: SSH2_MSG_KEXINIT sent
  15. debug1: SSH2_MSG_KEXINIT received
  16. debug1: kex: server->client aes128-cbc hmac-md5 none
  17. debug1: kex: client->server aes128-cbc hmac-md5 none
  18. debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
  19. debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
  20. debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
  21. debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
  22. debug1: Host '127.0.0.1' is known and matches the RSA host key.
  23. debug1: Found key in /home/test/.ssh/known_hosts:1
  24. debug1: ssh_rsa_verify: signature correct
  25. debug1: SSH2_MSG_NEWKEYS sent
  26. debug1: expecting SSH2_MSG_NEWKEYS
  27. debug1: SSH2_MSG_NEWKEYS received
  28. debug1: SSH2_MSG_SERVICE_REQUEST sent
  29. debug1: SSH2_MSG_SERVICE_ACCEPT received
  30. debug1: Authentications that can continue: publickey,password,keyboard-interactive
  31. debug1: Next authentication method: publickey
  32. debug1: Trying private key: /home/test/.ssh/identity
  33. debug1: Trying private key: /home/test/.ssh/id_rsa
  34. debug1: Trying private key: /home/test/.ssh/id_dsa
  35. debug1: Next authentication method: keyboard-interactive
  36. debug1: Authentications that can continue: publickey,password,keyboard-interactive
  37. debug1: No more authentication methods to try.
  38. Permission denied (publickey,password,keyboard-interactive).
  39. [test@PCTEST .ssh]$


 
J'ai essayé de me logguer en root, même refus.
Voici les droits de /home/test/.ssh

Code :
  1. 0 drwxr-xr-x   2 test test   160 jan  4 21:55 .ssh/


 
et les fichiers (authorized_keys a été créé par ssh-copy-id

Code :
  1. [test@PCTEST .ssh]$ ls -l
  2. total 16
  3. -rw-r--r--  1 test test 1113 jan  4 21:55 authorized_keys
  4. -rw-------  1 test test 1264 jan  4 21:40 clef
  5. -rw-r--r--  1 test test 1113 jan  4 21:40 clef.pub
  6. -rw-r--r--  1 test test  391 jan  4 21:41 known_hosts


Merci pour le coup de main (je suis curieux de comprendre la raison du blocage !)


Message édité par kafifi le 04-01-2006 à 22:21:07
Reply

Marsh Posté le 04-01-2006 à 22:27:57    

Le répertoire .ssh doit etre en acces que pour son propriétaire.  
 
chmod 700 /home/test/.ssh
 
Sur certain OS, c'est également necessaire pour les fichier du repertoire.
 
Essaye avec ca et tiens moi au courant.
 
sinon j'ai jamais utiliser "ssh-copy-id" un simple cp suffit, ou bien scp si tu fais une copie par le reseau.

Message cité 1 fois
Message édité par PierreC le 04-01-2006 à 22:28:58

---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 04-01-2006 à 22:36:05    

PierreC a écrit :

Le répertoire .ssh doit etre en acces que pour son propriétaire.  
chmod 700 /home/test/.ssh
Sur certain OS, c'est également necessaire pour les fichier du repertoire.
Essaye avec ca et tiens moi au courant.
sinon j'ai jamais utiliser "ssh-copy-id" un simple cp suffit, ou bien scp si tu fais une copie par le reseau.


chmod effectué sur /home/test/.ssh  
=> pas de changement.

Code :
  1. drwx------   2 test test   160 jan  4 21:55 .ssh/


chmod effectué sur tous les fichiers dans  /home/test/.ssh
=> pas de changement.

Code :
  1. -rwx------   1 test test 1113 jan  4 21:55 authorized_keys*
  2. -rwx------   1 test test 1264 jan  4 21:40 clef*
  3. -rwx------   1 test test 1113 jan  4 21:40 clef.pub*
  4. -rwx------   1 test test  391 jan  4 21:41 known_hosts*


nb : je suis toujours en console "user" (mais un test en root donne le même résultat).

Reply

Marsh Posté le 04-01-2006 à 22:40:36    

As tu regardés les logs dans /var/log/messages ou bien si tu as un log spécifique pour ssh ?


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 04-01-2006 à 23:33:01    

PierreC a écrit :

As tu regardés les logs dans /var/log/messages ou bien si tu as un log spécifique pour ssh ?


Dans /var/log/messages
Je trouve quelques lignes de type

Code :
  1. Jan  4 21:58:41 PCTEST sshd[23335]: Accepted password for test from 127.0.0.1 port 42580 ssh2


Rien dans /var/log/syslog
Rien dans /var/log/user.log
Je ne trouve pas de log spécifique pour ssh.
 
Dans /var/log/auth.log, on trouve là aussi quelques lignes relatives à sshd (lorsque je me suis connecté via password)

Code :
  1. Jan  4 21:55:38 PCTEST sshd[23309]: Accepted password for test from 127.0.0.1 port 42574 ssh2
  2. Jan  4 21:58:41 PCTEST sshd[23335]: Accepted password for test from 127.0.0.1 port 42580 ssh2


nb : je suis sous Mandriva 2006
 
 
 
 
 
 
 

Reply

Marsh Posté le 04-01-2006 à 23:39:29    

J'ai juste un doute :  
 
Tu veux que quel user se connecte à quel compte ?
 
car si deux user A et B
 
si A veux se connecter chez B alors tu doit généré les clefs chez B et copier la clef public chez A  
 
car j'ai pas l'impression que tu utilise des répertoires de 2 users là :-)


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 04-01-2006 à 23:39:29   

Reply

Marsh Posté le 05-01-2006 à 00:09:24    

cela ne marche pas parce ssh cherche des fichier nommés id_rsa ou id_dsa et non des fichiers nommés clef.
 
Si tu veux que cela marche tu as 2 solution :
 
1. soit tu renommes clef et clef.pub en id_rsa et id_rsa.pub
 
2. soit tu ajoutes la ligne suivante dans ssh_config :


IdentityFile ~/.ssh/clef


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 05-01-2006 à 20:26:26    

PierreC a écrit :

J'ai juste un doute :  
 
Tu veux que quel user se connecte à quel compte ?
 
car si deux user A et B
 
si A veux se connecter chez B alors tu doit généré les clefs chez B et copier la clef public chez A  
 
car j'ai pas l'impression que tu utilise des répertoires de 2 users là :-)


Les tests sont réalisés avec un unique user qui s'appelle "test".
Note que cela fonctionne parfaitement en mode connexion "mot de passe",
mais que cela coince en mode "clé".

Reply

Marsh Posté le 05-01-2006 à 20:29:32    

Dark_Schneider a écrit :

cela ne marche pas parce ssh cherche des fichier nommés id_rsa ou id_dsa et non des fichiers nommés clef.
 
Si tu veux que cela marche tu as 2 solution :
 
1. soit tu renommes clef et clef.pub en id_rsa et id_rsa.pub
 
2. soit tu ajoutes la ligne suivante dans ssh_config :


IdentityFile ~/.ssh/clef



@Dark_Schneider,  
@pierreC,
 
La déclaration de "clef" résoud le problème !  
 
Merci à vous deux pour votre support sur le sujet !

Reply

Marsh Posté le 06-01-2006 à 14:27:43    

ouah je connaissais pas ssh-copy-id !

Reply

Marsh Posté le 06-01-2006 à 19:55:53    

je me mets un petit flag ici ...

Reply

Marsh Posté le 17-01-2006 à 20:03:52    

hum, ça marche pas chez moi en fait
 
benoit@ibook >>> ps auxw | grep ssh-agent
benoit   18518  0.0  0.0   5632   180 ?        Ss   Jan12   0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/gnome-session
benoit    9395  0.0  0.1   3652   880 pts/1    S+   20:03   0:00 grep ssh-agent
 
[20:03:45][pts/1][~][#5]
benoit@ibook >>> ssh-add -L
The agent has no identities.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed