У меня есть новая работа /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