即使使用绝对路径,也无法在后台使用 autossh

即使使用绝对路径,也无法在后台使用 autossh

我很想将 autossh 设置为在启动时运行,并将其添加到/etc/rc.local

该命令有效:

autossh -i /root/.ssh/id_rsa -R 2522:localhost:22 user@address

但如果我添加-f选项

autossh -f -i /root/.ssh/id_rsa -R 2522:localhost:22 user@address

ssh 会话尚未启动。

如您所见,我对我的身份文件使用了绝对路径,因此这似乎与此处所述的问题不同:后台的 autossh 不起作用

/var/log/syslog

Oct 18 11:08:39 raspberrypi autossh[2417]: starting ssh (count 1)
Oct 18 11:08:39 raspberrypi autossh[2417]: ssh child pid is 2418
Oct 18 11:08:39 raspberrypi autossh[2417]: ssh exited with status 0; autossh exiting

我在树莓派上将它与 debian wheezy 一起使用,autossh 版本为 1.4c。

可能是它将-f选项传递给了 ssh 吗?

答案1

当您不使用 启动 autossh 时-f,您将获得一个 shell。当 shell 运行时,您将获得端口转发。注销后,ssh 将以退出代码 0 终止,并且 autossh 知道它不需要再次启动 ssh 会话。

当您使用 启动 autossh 时-f,它-f也会传递给 ssh。然后 ssh 在后台运行,不会为您提供 shell。由于您没有指定任何其他标志或远程命令,ssh 立即以状态 0 退出(无事可做),并且 autossh 不会重新启动它。

只需添加-N选项即可避免这种情况:

-N      Do not execute a remote command.  This is useful for just forwarding
        ports (protocol version 2 only)

像这样:

autossh -f -N -i /root/.ssh/id_rsa -R 2522:localhost:22 user@address

相关内容