Ssh agent qui ne démarre plus automatiquement

Bonjour

Depuis une quasi éternité, après login dans ma session, ssh-add me permettait de débloquer mes clés et d’utiliser ssh pour gérer les autres ordi de la maison.
J’ai mis à jour vers Bullseye et maintenant, en faisant ssh-add j’ai un message du style « pas d’agent » et pour que ça marche, il me faut faire un truc du style :
eval $(ssh-agent)

Comment revenir au comportement antérieur ?
Merci de votre aide.

1 J'aime

La commande suivante devrait permettre de voir si l’agent SSH est en train de tourner pour ton utilisateur, et s’il est censé se lancer automatiquement :

systemctl --user status ssh-agent

Merci.
Ça donne :
ssh-agent.service - OpenSSH Agent
Loaded: loaded (/usr/lib/systemd/user/ssh-agent.service; static)
Active: inactive (dead)
Docs: man:ssh-agent(1)

Par analogie avec les services lancés par le système j’ai essayé

systemctl --user ssh-agent start
mais j’ai le message
Unknown command verb ssh-agent

1 J'aime

Non, c’est plutôt

systemctl --user start ssh-agent
1 J'aime

Sauf erreur de ma part il n’est pas nécessaire de toucher au service ssh-agent de systemd.

Normalement ssh-agent est lancé automatiquement lors de l’ouverture de la session graphique via le script /etc/X11/Xsession.d/90x11-common_ssh-agent et la présence de use-ssh-agent dans /etc/X11/Xsession.options

1 J'aime

Merci. J’ai essayé cette commande, je verrai ce que qui se passera à la prochaine connexion, comme j’utilise l’hibernation, ce n’est normalement pas avant la prochaine panne d’électricité.

Sauf erreur de ma part il n’est pas nécessaire de toucher au service ssh-agent de systemd.

J’ai bien les fichiers dont tu as donné les références et use-ssh-agent est bien indiqué dans /etc/X11/Xsession.options

Pour autant, ssh-agent ne se lance pas.

1 J'aime

Il faut que t u redémarres ta machine et que tu vérifies avec :

ps aux | grep ssh-agent
1 J'aime

Attention, la commande systemctl --user start (…) a lancé le service, mais ne le fera pas persister après le prochain redémarrage.

Pour qu’il se lance automatiquement j’ai ajouté ce fichier ~/.config/systemd/user/ssh-agent.service.d/override.conf :

[Install]
WantedBy=default.target

et ai activé le lancement automatique avec :

systemctl --user enable ssh-agent.service

Ensuite, pour que mon environnement connaisse le chemin du socket pour communiquer avec l’agent j’ai ajouté ces lignes à ~/.profile :

# Set SSH agent socket
export SSH_AUTH_SOCK="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}/openssh_agent"

Je ne promets pas que ce soit l’approche la plus simple, mais je peux garantir son bon fonctionnement :wink: