Démarrer ssh-agent automatiquement

Posté le 22 juillet 2020 · 2 minutes de lecture

Depuis quelques mois, je tourne sur une Debian testing minimale avec Sway comme expliquer sur l’article dédié. Le problème, c’est que ssh demandait à chaque fois la passphrase.

J'ai envie de mourir

Voici donc un tout petit tutoriel (mais aussi un rappel à moi-même) pour lancer ssh-agent automatiquement au démarrage de la session.

L’objectif, c’est de créer un service systemd en tant qu’utilisateur·rice et de le démarrer automatiquement. Rien de plus simple, mais il faut quand même savoir que ssh-agent doit démarrer automatiquement au démarrage de ta session sinon la session sera le terminal. Merci à DevNull pour l’explication. 😁

Premièrement, on va créer le service:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ mkdir -p ~/.config/systemd/user
$ cat << EOF > ~/.config/systemd/user/ssh-agent.service
[Unit]
Description=SSH key agent
 
[Service]
Type=forking
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -a $SSH_AUTH_SOCK
 
[Install]
WantedBy=default.target
EOF

Ensuite, on exporte la variable dans .bash_profile (ou autre selon ton interpréteur, pour ma part c’est .zprofile):

1
2
$ echo export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" >> .bash_profile
$ source .bash_profile

Pour finir, on démarre de service:

1
systemctl --user start ssh-agent.service

Et on le démarre automatiquement à l’ouverture de la session:

1
systemctl --user enable ssh-agent.service

Et enfin, la dernière étape; configurer le client SSH pour utiliser la clé et s’en rappeler. 🙂 On ouvre alors ~/.ssh/config et on insert ceci:

1
2
3
Host *
	AddKeysToAgent yes
	IdentityFile ~/.ssh/id_rsa

Si tu veux plus d’information sur le fichier config de SSH, je t’invite à lire ceci, complet et facile à comprendre. C’est en anglais mais tu peux aussi trouver des ressources francophones.

Et voilà. C’est tout.

C’est rapide, mais je remercie mes adelphes de m’avoir supportée pendant mes instants de rage parce que je n’arrivais à rien. 😅