Як запустити та використовувати ssh-агент в якості системної служби?


15
  1. Як запустити ssh-агент як системну службу? У мережі є кілька пропозицій, але вони не є повними.

  2. Як додати автоматично незашифровані ключі, якщо послуга ssh-агент була запущена успішно? Можливо, ~/.ssh/.session-keysбуло б добре додати ключі зі списку .

  3. Як встановити SSH_AUTH_SOCKпісля цього будь-який сеанс входу? Найбільш правильний спосіб - перенести його з сервісу ssh-agent на сервіс systemd-logind (поняття не маю, чи це можливо). Простий наївний спосіб просто додати його /etc/profile.


Чого не вистачає в пропозиціях в мережі?
Марк Стосберг

Відповіді:


25

Щоб створити службу системного ssh-агента, вам потрібно створити файл, ~/.config/systemd/user/ssh-agent.serviceтому що ssh-агент призначений для користувача.

[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/configфайлу вам може знадобитися запустити:

chmod 600 ~/.ssh/config або chown $USER ~/.ssh/config

В іншому випадку ви можете отримати Bad owner or permissions on ~/.ssh/configпомилку.


launchdв OS X встановлюється для запуску ssh-агента, коли доступ до сокета Unix (і SSH_AUTH_SOCKзмінна prepopulated з контуром ...) (наприклад inetd, але сокет Unix). Це здається можливим і з цим systemd. (Можливо, цікаво буде ознайомитись із тим, чи є загальносистемний сервіс для обслуговування користувачів.)
Герт ван ден Берг,

Я отримую, Failed to execute operation: Process org.freedesktop.systemd1 exited with status 1коли біжу systemctl --user enable ssh-agentна centos7
scarba05

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.