Назад | Перейти на главную страницу

Autossh запрашивает пароль при работе с sudo (или из выскочки)

У меня есть новая работа /etc/init/tunnel.conf:

description "SSH Tunnel"

start on (net-device-up IFACE=eth0)
stop on runlevel[016]

respawn

exec autossh -nNT -o ServerAliveInterval=15 -R 12345:localhost:22 myuser@myserver

Когда я смотрю на /var/log/upstart/tunnel.log:

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-with-mic,password).

но если я попробую с терминала

autossh -R 12345:localhost:22 myuser@myserver

Он подключается к моему серверу, не спрашивая пароль (я скопировал ключи SSH)

Когда я запускаю его, используя sudo:

sudo autossh -R 12345:localhost:22 myuser@myserver

Он запрашивает пароль моего сервера, так что я думаю, это проблема, с которой я столкнулся с выскочкой. Почему SSH запрашивает у меня пароль, если я запускаю его как root?

когда autossh вызванный судо или процесс инициализации, autossh использовать файл идентификаторов / ssh-ключей, предоставленный корень пользователь (например, /root/.ssh/sshkeys). Когда вы пытаетесь бежать autossh с терминала, возможно, вы используете некорневой пользователь. Таким образом, autossh использовать файл идентификаторов / ssh-ключей, предоставленный этим пользователем (например, /home/non-root/.ssh/sshkeys).

Чтобы получить ожидаемое поведение, вы можете предоставить файл идентификации в tunnel.conf. Для этого измените последнюю строку на

exec autossh -nNT -i /home/non-root/.ssh/sshkeys -o ServerAliveInterval=15 -R 12345:localhost:22 myuser@myserver

Больше информации в Autossh с Ubuntu Upstart