如何建立持久的 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)上與 22 相同的連接埠。我的網頁伺服器已經啟動並正常運作。很多比無限循環更優雅。

哦,而不是林貢他提到,你可以使用奇妙的啟動控制設定、修改和監控它。如果您不熟悉 launchctl,我強烈建議您閱讀程式或網站中的入門手冊,以了解發生了什麼。抱歉 - 我本來想連結到底漆,但我還沒有建立足夠的代表:/

相關內容