启动时重新启动 autossh 反向隧道的问题

issue with restarting autossh reverse tunnel on boot

我似乎遇到了一个奇怪的问题: 我想在启动时重新启动一个反向 ssh 隧道,我已经尝试过使用一个初始化脚本(当以用户身份执行时工作正常)并在 /etc/rc.d 中添加了一行,但它的 none 有效。开机后得到的是:

$ ps ax  | grep autossh
  397 pts/10   S+     0:00 grep --color=auto autossh
 1351 ?        Ss     0:00 /usr/lib/autossh/autossh -M 22221    -N -o PubkeyAuthentication=yes -o PasswordAuthentication=no -i ~/.ssh/etherwan.key -R 19999:localhost:22 ubuntu@server

但我无法从 server 登录。所以我在启动后做了以下操作:

$ sudo killall -KILL autossh
[sudo] password for ron: 
$ /usr/bin/autossh -M 22221 -f -N -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i ~/.ssh/etherwan.key -R 19999:localhost:22 ubuntu@server

这样我就可以使用19999端口登录了!

密钥权限如下所示:(但 root 应该不需要关心,对吗?)

$ ls -l ~/.ssh/etherwan.key
-r-------- 1 ron ron 1675 Nov  6 04:15 /home/ron/.ssh/etherwan.key

rc.d 脚本中的 ~/.ssh/etherwan.key 替换为 /home/ron/.ssh/etherwan.key

'~' 字符被 shell 扩展到用户的主目录,但是 rc.d 脚本是 运行 root .