在 init 上启动反向隧道,并在后台使用 autossh

在 init 上启动反向隧道,并在后台使用 autossh

我需要一个初始化脚本来建立到服务器的反向隧道连接。我想出了以下启动脚本:

#! /bin/sh
### BEGIN INIT INFO
### END INIT INFO
case "$1" in
    start)
        echo "Starting autossh"
        /usr/bin/autossh -M 22222 -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /path/to/my.key -R 9999:localhost:22 ubuntu@host
    ;;
    stop)
        echo -n "Shutting down autossh"
        /usr/bin/killall -KILL autossh
    ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac
exit 0

它有一个问题:它不会在后台启动该进程,否则它会按预期工作。我尝试使用该-f标志并将该start)行更改为,/usr/bin/autossh -f -M 22222但这似乎不起作用,我想知道为什么。我做错了什么,手册页说

-F'导致 autossh 在运行 ssh 之前下降到后台。

这里发生了什么?

/var/log/syslog服务器上,我可以看到:

Nov 3 22:01:10 ip-172-31-33-223 systemd[1]: Started Session 1524 of user ubuntu.

有或没有-f标志,即客户端确实建立了连接,host但当标志存在时-f,它不会让我通过端口 9999 上的本地主机登录.... :o

相关内容