web-dev-qa-db-ja.com

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

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

Crontabに@reboot autossh行を挿入しようとしましたが、セッションがautossh切断で開始されることがよくあり、最初の試行が失敗するとautosshが終了することがわかりました。私の現在の回避策は、小さなスクリプトとcronジョブです。

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

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

これを行うためのより良い方法はありますか、それとも今のところこれに満足する必要がありますか?

3

申し訳ありませんが、これは非常に遅い応答であり、すでにこの解決策に出くわした可能性がありますが、 ここ はOSXのlaunchctlメカニズムを使用してそれを行う方法です。

私は彼がそれを持っているとは思わないかなり正しい;非推奨の「OnDemand/false」キー/値のペアの代わりに、「KeepAlive」キー(値は「true」)を使用します。また、なぜ彼がリモートホスト(1666)の22と同じポートに転送しているのかわかりません。それでも-あなたはその考えを理解しています。私は私たちのウェブサーバーに問題なく稼働しています。 無限ループよりもはるかにエレガントです

ああ、そして彼が言及している Lingon の代わりに、素晴らしい LaunchControl を使用して、セットアップ、変更、監視することができます。 launchctlに慣れていない場合は、プログラムまたはサイトの入門書を読んで、何が起こっているのかを理解することを強くお勧めします。申し訳ありませんが、私は入門書にリンクしていましたが、十分な担当者を構築していません:/

1
GAM