我想在系统启动时启动 ssh 反向隧道。下面的行让我建立隧道很好 - 但我最终被登录到server
我不想要的地方,尤其是不是来自初始化脚本。
/usr/bin/autossh -M 22222 -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /path/to/my/key.key -R 9999:localhost:22 ubuntu@server
man autossh
说该-f
选项应该满足我的需要:
导致 autossh 在运行 ssh 之前进入后台。
但问题是,当我将命令更改为usr/bin/autossh -f -M...
. 我已经将其作为我的初始化脚本的一部分进行了尝试,如下所示:
#! /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/the.key -R pppp:localhost:22 user@server
;;
stop)
echo -n "Shutting down utossk"
/usr/bin/killall -KILL autossh
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
但是我需要一个选项来把它扔到后台,如果 -f 选项对我不起作用,我该怎么做?
您正在寻找的是
-N
选项。从 SSH 的手册页:您的完整命令将是:
这也是我正在使用的(使用 cron's
@reboot
),并取得了成功。替换
pppp:
为您要使用的本地端口。