在Ubuntu启动时自动运行-ND
我在远程服务器上设置了无密钥登录。 我使用远程服务器来隧道传输数据。 我希望我的本地系统在启动时自动ssh到远程服务器。
我尝试了以下链接中建议的解决方案,但它们都不适用于我:
- 如何使用upstart启动SSH隧道
- 如何在启动Ubuntu机器时运行脚本?
- 使用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
。