Как запустить ssh-agent как службу systemd ? В сети есть некоторые предложения, но они не полны.
Как автоматически добавить незашифрованные ключи, если служба ssh-agent была успешно запущена? Возможно,
~/.ssh/.session-keys
было бы неплохо добавить ключи из списка .Как установить
SSH_AUTH_SOCK
в любой сессии входа в систему впоследствии? Самый правильный способ - переместить его из службы ssh-agent в службу systemd-logind (не знаю, возможно ли это). Простой наивный способ - просто добавить его к/etc/profile
.
15
Ответы:
Чтобы создать службу ssh-агента systemd, вам нужно создать файл,
~/.config/systemd/user/ssh-agent.service
потому что ssh-agent изолирован от пользователя.Добавить
SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"
в~/.pam_environment
.Наконец, включите и запустите этот сервис.
И, если вы используете версию ssh выше 7.2.
echo 'AddKeysToAgent yes' >> ~/.ssh/config
Это заставит клиента ssh всегда добавлять ключ к работающему агенту, поэтому нет необходимости предварительно добавлять его в ssh.
Обратите внимание, что при создании
~/.ssh/config
файла вам может потребоваться выполнить:chmod 600 ~/.ssh/config
илиchown $USER ~/.ssh/config
В противном случае вы можете получить
Bad owner or permissions on ~/.ssh/config
ошибку.источник
launchd
в OS X установлен запуск ssh-agent при обращении к сокету Unix (иSSH_AUTH_SOCK
переменная предварительно заполнена путем ...) (какinetd
, но сокет Unix). Это кажется возможным и сsystemd
. (Было бы интересно узнать, является ли общесистемный сервис опцией для каждого пользователя ....)Failed to execute operation: Process org.freedesktop.systemd1 exited with status 1
когда я бегуsystemctl --user enable ssh-agent
на centos7Это не поддерживается, если вы используете centos 7, потому что он не будет поддерживать
--user
флагsystemctl
. Смотрите этот отчет об ошибке Centos, поддержка пользователей Systemd не работает при доставкеисточник