Я пытаюсь работать ssh-agent
каждой ssh-сессией для каждого пользователя (скажем, у меня есть Усера с полномочием пользователя root и userB без них, дают полномочия).
Для этого я создал файл единицы на основе этого ответа переполнения стека
Я разместил сервис под /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
Я также добавил AddKeysToAgent yes
кому: /etc/ssh/ssh_config
и export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
кому: /etc/bash.bashrc
затем, конечно, я перезапустил сессию.
Проблема: Этот подход работает на Усера, но не на userB.
Отладка:
Переменная среды: SSH_AUTH_SOCK, кажется, установлен правильно для Усера
$ echo $SSH_AUTH_SOCK
/run/user/1006/ssh-agent.socket
но не для userB, где я добираюсь:
$ echo $SSH_AUTH_SOCK
/ssh-agent.socket
Я нахожусь на Ubuntu 16.04.3 LTS, 4.4.0-112-универсальный, OpenSSH_7.2p2
Заранее спасибо за любую подсказку.
Добро пожаловать для выяснения у Ubuntu.
Systemd-широкие пользовательские единицы должны быть помещены в /etc/systemd/user
.
Вы разместили их в /etc/systemd/system
, куда они только выполняются как пользователь root.