Как выполнить файл единицы как сервис для всех пользователей

Я пытаюсь работать 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

Заранее спасибо за любую подсказку.

1
задан 10 September 2018 в 13:58

1 ответ

Добро пожаловать для выяснения у Ubuntu.

Systemd-широкие пользовательские единицы должны быть помещены в /etc/systemd/user.

Вы разместили их в /etc/systemd/system, куда они только выполняются как пользователь root.

0
ответ дан 7 December 2019 в 23:21

Другие вопросы по тегам:

Похожие вопросы: