Linux
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
它連接到 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