我如何建立持久的 ssh 隧道?

我如何建立持久的 ssh 隧道?

我有一台 Mac 笔记本电脑,想拥有一个持久的 ssh 隧道,这样我就可以始终从本地网络之外登录。我正在寻找一种可以在最初无法访问服务器时(例如,如果我在启动时没有互联网连接)工作的东西,并且在可能的情况下自动启动隧道。

我尝试@reboot autossh在 crontab 中添加一行,但我发现会话autossh每隔一段时间就会断开连接,autossh如果第一次尝试失败,会话就会退出。我目前的解决方法是使用一个小脚本和一个 cronjob:

# crontab
/home/blackl/bin/script &!

# script
#!/bin/sh
while true; do ssh -Ngn -R $some_port:localhost:22 $server; sleep 30; done;

有没有更好的方法来做到这一点,或者我现在只需要对此感到满意吗?

答案1

抱歉,回复太晚了,你可能已经遇到过这个解决方案,但是这里如何使用 OS X 的 launchctl 机制来实现。

我不认为他明白相当正确;您将使用“KeepAlive”键(值为“true”)而不是已弃用的“OnDemand/false”键/值对。另外,我不知道他为什么要转发到远程主机上的相同端口(1666)作为 vs 22。不过 - 您明白了。我的网络服务器已启动并正常运行。很多比无限循环更优雅。

哦,而不是林贡他提到的,你可以使用奇妙的启动控制来设置、修改和监控它。如果您不熟悉 launchctl,我强烈建议您阅读程序或网站中的入门指南,以了解发生了什么。抱歉 - 我本来想链接到入门指南,但我还没有建立足够的声誉 :/

相关内容