Clé rsa non reconnue

Bonjour,
J’ai revérifié ma conf 10 fois mais impossible de faire accepter ma clé rsa sur un serveur pour me connecter SSH.

Ma conf serveur (Debian buster):

PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp  /usr/lib/openssh/sftp-server
PasswordAuthentication yes

Le log coté client:

~$ ssh -v kmc@ip.du.ser.ver         
OpenSSH_8.2p1 Ubuntu-4ubuntu0.2, OpenSSL 1.1.1j  16 Feb 2021
debug1: Reading configuration data /home/kmc/.ssh/config
debug1: /home/kmc/.ssh/config line 2: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to ip.du.ser.ver [ip.du.ser.ver] port 22.
debug1: Connection established.
debug1: identity file /home/kmc/.ssh/id_rsa type 0
debug1: identity file /home/kmc/.ssh/id_rsa-cert type -1
debug1: identity file /home/kmc/.ssh/id_dsa type 1
debug1: identity file /home/kmc/.ssh/id_dsa-cert type -1
debug1: identity file /home/kmc/.ssh/id_ecdsa type -1
debug1: identity file /home/kmc/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/kmc/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/kmc/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/kmc/.ssh/id_ed25519 type -1
debug1: identity file /home/kmc/.ssh/id_ed25519-cert type -1
debug1: identity file /home/kmc/.ssh/id_ed25519_sk type -1
debug1: identity file /home/kmc/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/kmc/.ssh/id_xmss type -1
debug1: identity file /home/kmc/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.9p1 Debian-10+deb10u2
debug1: match: OpenSSH_7.9p1 Debian-10+deb10u2 pat OpenSSH* compat 0x04000000
debug1: Authenticating to ip.du.ser.ver:22 as 'kmc'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:nTeppHr9F4b6xHKop7cjBLUqm9eP0/WmmOQ0t5Xv0MM
debug1: Host 'ip.du.ser.ver' is known and matches the ECDSA host key.
debug1: Found key in /home/kmc/.ssh/known_hosts:36
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey in after 134217728 blocks
debug1: Will attempt key: /home/kmc/.ssh/id_rsa RSA SHA256:eHB/0b9qDKtiIsd4vY5xAth8pyCMD2PK5TUIsTVLGWQ
debug1: Will attempt key: /home/kmc/.ssh/id_dsa DSA SHA256:47M5b1btvNdXKJoTaQ9ktUUw2eralw0elF2ZkzlUr8s
debug1: Will attempt key: /home/kmc/.ssh/id_ecdsa 
debug1: Will attempt key: /home/kmc/.ssh/id_ecdsa_sk 
debug1: Will attempt key: /home/kmc/.ssh/id_ed25519 
debug1: Will attempt key: /home/kmc/.ssh/id_ed25519_sk 
debug1: Will attempt key: /home/kmc/.ssh/id_xmss 
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: /home/kmc/.ssh/id_rsa RSA SHA256:eHB/0b9qDKtiIsd4vY5xAth8pyCMD2PK5TUIsTVLGWQ
debug1: Authentications that can continue: publickey,password
debug1: Offering public key: /home/kmc/.ssh/id_dsa DSA SHA256:47M5b1btvNdXKJoTaQ9ktUUw2eralw0elF2ZkzlUr8s
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/kmc/.ssh/id_ecdsa
debug1: Trying private key: /home/kmc/.ssh/id_ecdsa_sk
debug1: Trying private key: /home/kmc/.ssh/id_ed25519
debug1: Trying private key: /home/kmc/.ssh/id_ed25519_sk
debug1: Trying private key: /home/kmc/.ssh/id_xmss
debug1: Next authentication method: password
kmc@ip.du.ser.ver's password: 

Je sais que c’est un sujet rabaché mais j’avoue que je suis à court et ce serait sympa si quelqu’un pouvait me mettre sur la voie.

Si tu tente de te connecter en utilisant la clé de façon explicite :

ssh -i path_de_ta_clé USER@IP

Si ça marche montre nous ton fichier config dans le dossier .ssh (si il y en a un.

Il semblerait que dans /home/kmc/.ssh il n’y ait que deux clés : une de type RSA et une de type DSA. Pourrait-on savoir à quelle date ces clés ont été créées ? Je pose la question car

1& fp2@debpacha:~ $ l .ssh/id*
4 -rw------- 1 fp2 fp2  444 oct.   8  2018 .ssh/id_ed25519
4 -rw-r--r-- 1 fp2 fp2   94 oct.   8  2018 .ssh/id_ed25519.pub
4 -rw------- 1 fp2 fp2 3434 oct.   8  2018 .ssh/id_rsa
4 -rw-r--r-- 1 fp2 fp2  738 oct.   8  2018 .ssh/id_rsa.pub
4 -rw------- 1 fp2 fp2  736 janv.  8  2003 .ssh/id_dsa
4 -rw-r--r-- 1 fp2 fp2  626 janv.  8  2003 .ssh/id_dsa.pub
4 -rw------- 1 fp2 fp2  951 janv.  8  2003 .ssh/id_rsa_legacy
4 -rw-r--r-- 1 fp2 fp2  246 janv.  8  2003 .ssh/id_rsa_legacy.pub
1& fp2@debpacha:~ $ 

Autrement dit, j’avais créé une paire de clés RSA et DSA le 8 janvier 2003 (sur une RedHat à l’époque). C’étaient les préconisations de l’époque.
Le 8 octobre 2018 ces clés ne fonctionnaient plus sur certains systèmes, car considérées comme pas assez robustes.
J’ai donc créé une nouvelle clé RSA (sur une Debian) et une clé basée sur les fonctions elliptiques ed25519 (beaucoup plus moderne et plus courte ). Je suggère de mettre la même phrase de passe pour toutes les clés et d’utiliser systématiquement l’agent ssh. Le paquet keychain est bien pratique pour ne ne pas oublier de charger les clés dans l’agent (la demande de la phrase de passe n’a lieu qu’une fois pour tous les shells interactifs ).

Naturellement, il faudra mettre à jour le fichier .ssh/authorized_keys sur le serveur distant.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime. (à la retraite)

« Il est souvent trop tôt pour savoir s’il n’est pas trop tard. »
Pierre Dac
« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)

1 J'aime

la phrase de passe c’est pour l’agent ou celle ds clefs? car avoir la même phrase pour toutes ses clefs, ca en limite la portée. C’est comme avoir le même mot de passe pour tous ses comptes.

Il faut indiquer comment tu as généré tes clefs et comment tu as copiés les clefs publique sur le serveur.
Le retour indique qu’il n’y a pas de correspondance trouvé pour tes clés RSA et DSA (obsolète et non sécurisée)
Pour compléter ce qu’indique @littlejohn75, tu dois générer des clés ed25519 sur le client

ssh-keygen -t ed25519

et copier la clé publique sur le serveur avec :

ssh-copy-id -i .ssh/id_ed25519.pub kmc@ip.du.ser.ver

Si tu veux utiliser des clés RSA il faut faire la même chose avec :

ssh-keygen -t rsa -b 4096 

On voit d’après le log qu’il n’est pas nécessaire d’indiquer la clé de façon explicite puisque c’est la bonne qui est lue (j’utilise la rsa, la dsa est un vestige d’utilisation antérieure).

J’ai donc refait une clé:

.ssh$ ssh-copy-id -i id_ed25519.pub kmc@51.75.252.16
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_ed25519.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
kmc@51.75.252.16's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'kmc@ip.du.ser.ver"
and check to make sure that only the key(s) you wanted were added.

Mais la clé n’avait pas été insérée sur le serveur, en tout cas pas dans le compte kmc. (?)

Je l’ai donc insérée a la mano copier/coller et là: sésame !

Un grand merci à tous.

Quant à savoir pourquoi la id_rsa.pub ne marche pas… elle fonctionne sur d’autres serveurs. Si ça intéresse quelqu’un je peux poursuivre les investigations en comparant les clés client/serveur avec un outil s’il en existe un adapté, par exemple.

déjà, si on savait quelle version de SSH, tu utilisais ?
comment tu avais, si tu l’avais fait, configuré ou pas ton fichier de config de SSH localement, sur ta station ?

sur le serveur:

kmc@vps-dc57eb6c:~$ ssh -V
OpenSSH_7.9p1 Debian-10+deb10u2, OpenSSL 1.1.1d  10 Sep 2019

Si par localement tu entends le poste client, non je n’avais pas configuré spécialement mon fichier de config. Mais la nouvelle clé a fonctionné sans aucun modif de config de part et d’autre.