在Ubuntu启动时自动运行-ND

我在远程服务器上设置了无密钥登录。 我使用远程服务器来隧道传输数据。 我希望我的本地系统在启动时自动ssh到远程服务器。

我尝试了以下链接中建议的解决方案,但它们都不适用于我:

  1. 如何使用upstart启动SSH隧道
  2. 如何在启动Ubuntu机器时运行脚本?
  3. 使用Ubuntu Upstart进行Autossh

我做了那些post中提到的内容。 autossh命令应该打开一个端口(在我的情况下为9090 ),以便我可以隧道传输流量。 在应用了这些方法之后,我重新启动了PC并在重新启动时运行了nmap以查看特定端口是否正在侦听。 遗憾的是,在每种情况下端口仍然关闭,因此每次重新启动PC时我都必须在终端手动输入命令。

有人能帮我吗? 请注意,远程服务器和我的本地系统都运行Ubuntu 14.04,并且本地系统没有安装GUI。

我把这个小脚本保存在~/bin/infinite_ssh (1)中:

 #! /bin/bash -x # while :; do ssh -R 2222:localhost:22 remoteserver sleep 86400 sleep 10 done 

这是连接到远程服务器并创建一个反向隧道,以便在远程服务器中我可以使用ssh -p 2222 localhost ssh我的桌面。 显然,您的申请可能会有所不同。 remoteserver~/ssh/config定义,因此您可以在没有密码的情况下登录,并且具有KeepAlive on选项。

然后你可以用/etc/rc.local来调用它

 su -l youruser -c /home/youruser/bin/infinite_ssh & 

这样它在启动时作为用户在后台启动。


脚注:

(1)显然,你需要给脚本执行权限… chmod a+x ~/bin/infinite_ssh