私は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;
これを行うためのより良い方法はありますか、それとも今のところこれに満足する必要がありますか?
申し訳ありませんが、これは非常に遅い応答であり、すでにこの解決策に出くわした可能性がありますが、 ここ はOSXのlaunchctlメカニズムを使用してそれを行う方法です。
私は彼がそれを持っているとは思わないかなり正しい;非推奨の「OnDemand/false」キー/値のペアの代わりに、「KeepAlive」キー(値は「true」)を使用します。また、なぜ彼がリモートホスト(1666)の22と同じポートに転送しているのかわかりません。それでも-あなたはその考えを理解しています。私は私たちのウェブサーバーに問題なく稼働しています。 無限ループよりもはるかにエレガントです。
ああ、そして彼が言及している Lingon の代わりに、素晴らしい LaunchControl を使用して、セットアップ、変更、監視することができます。 launchctlに慣れていない場合は、プログラムまたはサイトの入門書を読んで、何が起こっているのかを理解することを強くお勧めします。申し訳ありませんが、私は入門書にリンクしていましたが、十分な担当者を構築していません:/