Linux

Autossh 在使用 sudo(或從新貴)執行時要求輸入密碼

  • May 6, 2014

我有一份新貴的工作/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

它連接到 myserver 而不要求我輸入密碼(我已經複製了 SSH 密鑰)

當我使用它執行它時sudo

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

它要求我輸入伺服器密碼,所以我想這是我在新貴工作中遇到的問題。為什麼 SSH 要求我輸入密碼,而我以 root 身份執行它?

當被sudo或 init 程序 autossh呼叫時,使用root使用者提供的 identity/ssh-keys 文件(例如)。當您嘗試從終端執行時,也許您使用的是非 root使用者。因此,請使用該使用者提供的身份/ssh-keys 文件(例如)。autossh``/root/.ssh/sshkeys``autossh``autossh``/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

使用 Ubuntu Upstart 的 Autossh 中的更多資訊

引用自:https://serverfault.com/questions/593266