Чтобы создать службу 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.
Обратите внимание, что при создании файла ~/.ssh/config
вам может потребоваться запустить:
chmod 600 ~/.ssh/config
или
chown $USER ~/.ssh/config
В противном случае вы можете получить ошибку Неверный владелец или права доступа к ~/.ssh/config
.