我在远程服务器上设置了无密钥登录。我使用远程服务器对我的数据进行隧道传输。我希望我的本地系统在启动时自动 ssh 进入远程服务器。
我尝试了以下链接中建议的解决方案,但没有一个对我有用:
我做了那些帖子中提到的。该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
Run Code Online (Sandbox Code Playgroud)
这是连接到remoteserver并创建一个向后隧道,以便在远程服务器中我可以使用 ssh 我的桌面ssh -p 2222 localhost。显然,您的应用程序可能会有所不同。的remoteserver定义是~/ssh/config为了让您无需密码即可登录,并且有KeepAlive on选项。
然后你可以从with调用它/etc/rc.local
su -l youruser -c /home/youruser/bin/infinite_ssh &
Run Code Online (Sandbox Code Playgroud)
以便它在启动时以您的用户身份在后台启动。
脚注:
(1)显然,你需要给脚本执行权限chmod a+x ~/bin/infinite_ssh...。
| 归档时间: |
|
| 查看次数: |
1311 次 |
| 最近记录: |