永続的な SSH トンネルを作成するにはどうすればよいでしょうか?

永続的な SSH トンネルを作成するにはどうすればよいでしょうか?

私は Mac ラップトップを持っており、ローカル ネットワークの外部からいつでもログインできるように、永続的な SSH トンネルを用意したいと考えています。サーバーに最初にアクセスできない場合 (たとえば、起動時にインターネットに接続していない場合) に機能し、可能な場合は自動的にトンネルを開始するものを探しています。

crontab に1 行追加してみましたが、セッションが切断されて開始されることが時々あり、最初の試行が失敗すると終了すること@reboot autosshがわかりました。現在の回避策は、小さなスクリプトと cronjob です。autosshautossh

# 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 メカニズムを使用してこれを実行する方法です。

彼はそれを理解していないと思うとてもそうです。非推奨の「OnDemand/false」キー/値ペアの代わりに、「KeepAlive」キー (値は「true」) を使用します。また、リモート ホストの 22 と同じポート (1666) に転送する理由もわかりません。それでも、要点はわかります。私は Web サーバーに問題なく接続して動作させています。多くの無限ループよりもエレガントです。

ああ、その代わりにリンゴン彼が言及しているように、あなたは素晴らしい発射制御セットアップ、変更、監視を行います。launchctl に詳しくない場合は、プログラムまたはサイト内の入門書を読んで、何が起こっているかを理解することを強くお勧めします。申し訳ありませんが、入門書へのリンクを貼りたかったのですが、十分な評判がありませんでした :/

関連情報