J'essaie de lancer ssh-agent
par chaque session SSH pour chaque utilisateur (disons que j'ai userA avec le privilège root et userB avec ces privilages).
Pour ce faire, j'ai créé un fichier unité basé sur cette réponse de débordement de pile
J'ai placé le service sous /etc/systemd/system/run-ssh-agent.service
:
[Unit]
Description=SSH key agent
[Service]
Type=forking
Environment=SSH_AUTH_SOCK=/run/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -a $SSH_AUTH_SOCK
[Install]
WantedBy=multi-user.target
J'ai également ajouté AddKeysToAgent yes
à /etc/ssh/ssh_config
et export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
à /etc/bash.bashrc
ensuite, bien sûr, j'ai redémarré la session.
Le problème: Cette approche fonctionne pour userA mais pas pour userB .
Débogage:
La variable d'environnement: SSH_AUTH_SOCK semble être définie correctement pour l'utilisateurA
$ echo $SSH_AUTH_SOCK
/run/user/1006/ssh-agent.socket
mais pas pour userB, où j'obtiens:
$ echo $SSH_AUTH_SOCK
/ssh-agent.socket
Je suis sur Ubuntu 16.04.3 LTS, 4.4.0-112-generic, OpenSSH_7.2p2
Merci d'avance pour tout indice.
Bienvenue sur Ask Ubuntu.
Les unités utilisateur à l'échelle de Systemd doivent être placées dans /etc/systemd/user
.
Vous les avez placés dans /etc/systemd/system
, où ils ne sont exécutés qu'en tant qu'utilisateur root.