Mes connexions ssh nécéssitent parfois un **eval "$(ssh-agent)"**, pourquoi ?


#1

Tout est dans le titre.
Sur certaines connections ssh par clé, je suis obligé de lancer eval “$(ssh-agent)” avant de pouvoir me connecter.
C’est stable, ce sont toujours les mêmes machines qui me refusent tant que je ne lance pas à la main l’agent, mais ce qui est bizarre, c’est que vers plusieurs serveurs a priori installés à l’identique, certaines m’acceptent directement, d’autres non.
Plus bizarre pour moi, sur ma machine que je viens de remonter, juste aprés l’install, j’ai exporté ma clé sur mon serveur domestique et je me connecte sans soucis direct, mais là, je viens de remettre les clés de mon ancien compte, qui avaient déjà été exportées sur le serveur, et maintenant il faut que je lance l’agent avant de me connecter.

Pourquoi ?


#2

Que veut dire ce « d’autres non » ? Il y a une demande de phrase de passe, de mot de passe ?
Pourrait-on avoir les commandes passées et les retours complets en utilisant les options verbeuses ( -v -v ) ?

ssh-add -l
ssh -v -v user@host

Avez-vous installé un paquet tel que keychain sur la machine de départ ou certaines destinations ?
Personnellement, j’ai paramétré keychain pour lancer l’agent avec toutes les clés à l’ouverture du premier shell (par exemple sur tty2 ) et mes clés sont chargées dans l’agent dans tous les terminaux xfce4-terminal.

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


F. Petitjean
Ingénieur civil du Génie Maritime.

« On ne perd pas son temps en aiguisant ses outils. »
Proverbe français

« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)


#3
mj@mercure:~/Documents$ ssh emeraude
sign_and_send_pubkey: signing failed: agent refused operation
mj@<ip>'s password: 
mj@mercure:~/Documents$ ssh-add -l
4096 SHA256:<long hash> mj@mercure (RSA)
mj@mercure:~/Documents$ ssh -v -v emeraude
OpenSSH_7.4p1 Debian-10+deb9u6, OpenSSL 1.0.2r  26 Feb 2019
debug1: Reading configuration data /home/mj/.ssh/config
debug1: /home/mj/.ssh/config line 41: Applying options for emeraude
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "<ip>" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to <ip> [<ip>] port 22.
debug1: Connection established.
debug1: identity file /home/mj/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/mj/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/mj/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/mj/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/mj/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/mj/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/mj/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/mj/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u6
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.7p1 Debian-5+deb8u7
debug1: match: OpenSSH_6.7p1 Debian-5+deb8u7 pat OpenSSH* compat 0x04000000
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to 192.168.127.129:22 as 'emeraude'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c
debug2: host key algorithms: ssh-rsa-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519
debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc
debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com,zlib
debug2: compression stoc: none,zlib@openssh.com,zlib
debug2: languages ctos: 
debug2: languages stoc: 
debug2: first_kex_follows 0 
debug2: reserved 0 
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
debug2: host key algorithms: ssh-rsa,ssh-dss
debug2: ciphers ctos: aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
debug2: ciphers stoc: aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
debug2: languages ctos: 
debug2: languages stoc: 
debug2: first_kex_follows 0 
debug2: reserved 0 
debug1: kex: algorithm: curve25519-sha256@libssh.org
debug1: kex: host key algorithm: ssh-rsa
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: ssh-rsa SHA256:<long hash>
debug1: Host '<ip>' is known and matches the RSA host key.
debug1: Found key in /home/mj/.ssh/known_hosts:3
debug2: set_newkeys: mode 1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug2: key: /home/mj/.ssh/id_rsa (0x5595934ebe40), agent
debug2: key: /home/mj/.ssh/id_dsa ((nil))
debug2: key: /home/mj/.ssh/id_ecdsa ((nil))
debug2: key: /home/mj/.ssh/id_ed25519 ((nil))
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/mj/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 535
debug2: input_userauth_pk_ok: fp <long hash>
sign_and_send_pubkey: signing failed: agent refused operation
debug1: Trying private key: /home/mj/.ssh/id_dsa
debug1: Trying private key: /home/mj/.ssh/id_ecdsa
debug1: Trying private key: /home/mj/.ssh/id_ed25519
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
emeraude@<ip>'s password: 

Partout où j’ai mis , c’est toujours l’ip locale de la machine vers laquelle je vais, ce sont des hash distincts (je peux les différentier si besoin).

Je viens de le faire sur la machine de départ avant de fabriquer les traces, et comme elles l’indiquent, ça n’a rien changé, sauf à me demander de créer un mot de passe pour le trousseau quand j’ai voulu relever mon mail.

Alors ça ça m’intérèsse, c’est peut être suffisant pour moi, ça se configure où (je chercherais plus tard faute de réponse, mais si on peut me faciliter les choses) ?

On se vouvoie ?
J’ai dit quelque chose de mal pour avoir droit à cette distance ? :smile:


#4

Lire la documentation du paquet keychain

man keychain

et ajouter dans le fichier ~/.bashrc une ligne du genre

eval `keychain --eval id_rsa id_rsa_legacy id_ed25519`

(Dans mon cas j’ai renommé ma clé id_rsa en id_rsa_legacy car elle a été créée début 2003 et me sert pour me connecter à certains serveurs sur lesquels je n’ai pas refait le fichier ~/.ssh/authorized_keys )

fp2@debpacha:~$ l .ssh
total 44
12 -rw-r--r-- 1 fp2 fp2 9404 nov.  14 12:54 known_hosts
 4 -rw------- 1 fp2 fp2  444 oct.   8 20:38 id_ed25519
 4 -rw-r--r-- 1 fp2 fp2   94 oct.   8 20:38 id_ed25519.pub
 4 -rw------- 1 fp2 fp2 3434 oct.   8 20:34 id_rsa
 4 -rw-r--r-- 1 fp2 fp2  738 oct.   8 20:34 id_rsa.pub
 4 -rw------- 1 fp2 fp2  736 janv.  8  2003 id_dsa
 4 -rw-r--r-- 1 fp2 fp2  626 janv.  8  2003 id_dsa.pub
 4 -rw------- 1 fp2 fp2  951 janv.  8  2003 id_rsa_legacy
 4 -rw-r--r-- 1 fp2 fp2  246 janv.  8  2003 id_rsa_legacy.pub
fp2@debpacha:~$ 

La clé id_dsa n’est pas chargée car elle n’est plus acceptée par Debian stretch.
Ne pas oublier si vous créez une nouvelle clé d’utiliser la même phrase de passe comme indiqué dans ce billet

D’après cette page (45 écrans avec elinks) il se pourrait que les droits sur les clés ne soient pas corrects ou qu’il y ait une interférence avec gnome-keyring.
Je n’ai pas d’expérience avec GNOME. Vérifiez si si le processus gnome-keyring-daemonest présent dans la liste de tous les processus.

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


F. Petitjean
Ingénieur civil du Génie Maritime.

« Je préfère le vin d’ici à l’au-delà »
Pierre Dac


#5

On ne me l’avait jamais faite, celle là. :rofl:
Merci. Je regarde ça dés que possible.


#6

Pour afficher la documentation d’un paquet

debmany nom_du_paquet

Si besoin, installez d’abord le paquet debian-goodies (moins de 200Ko, non disponible chez Ubuntu ).

Une commande (fonction bash) pour afficher la documentation du paquet qui fournit la commande $1

docpkg() {
  pkg=$(dpkg-query --search $(which $1) | tr ':' '\t' | cut -f 1)
  debmany $pkg
 }

Exemple d’utilisation

docpkg  ssh
docpkg tr

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


F. Petitjean

« Un ordinateur c’est comme un frigo : on le branche et ça marche. »
Laurent Serano Directeur informatique, réunion Délégués du Personnel 2010


#7

Bon, encore un truc que je n’aurais pas le temps de creuser parce qu’il faut que je passe à autre chose:
je suis passé en buster suite à mes figeages avec nouveau pour voir si c’était mieux, et l’effet de bord est que je n’ai plus aucun problème pour me connecter.