Как запустить и использовать ssh-agent в качестве службы systemd?

  1. Как запустить ssh-agent в качестве службы systemd ? В сети есть некоторые предложения, но они не полны.

  2. Как добавить автоматически незашифрованные ключи, если служба ssh-agent была успешно запущена? Вероятно, добавление ключей из списка ~/.ssh/.session-keys было бы хорошим.

  3. Как установить SSH_AUTH_SOCK в любом сеансе входа в систему после этого? Самый правильный способ – выталкивать его из службы ssh-agent в службу systemd-logind (понятия не имею, если это когда-либо возможно). Простой наивный способ просто добавить его в /etc/profile .

Чтобы создать службу systemd ssh-agent, вам необходимо создать файл в ~/.config/systemd/user/ssh-agent.service потому что ssh-agent изолирован пользователем.

 [Unit] Description=SSH key agent [Service] Type=simple Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK [Install] WantedBy=default.target 

Добавьте SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket" в ~/.pam_environment .

Наконец включите и запустите эту службу.

 systemctl --user enable ssh-agent systemctl --user start ssh-agent 

И, если вы используете версию ssh выше 7.2. echo 'AddKeysToAgent yes' >> ~/.ssh/config

Это даст указание клиенту ssh всегда добавлять ключ к запущенному агенту, поэтому ssh-add его не нужно заранее.