web-dev-qa-db-ja.com

永続的なSSH接続

このコマンドを使用して、リモートサーバーへのSSHトンネルを作成します。

ssh -D localproxy:9999 -C [email protected]

また、expectコマンドを使用してプロセス全体を自動処理し、パスワードも自動的に提供するシェルスクリプトを作成しました。

問題は、PCの起動時に接続を確立するためにこのスクリプトを手動で実行する必要があることです。また、PCがスリープ状態になると、この接続が切断され、このスクリプトを再実行します。

マシンの状態に関係なく永続化できる方法はありますか?

3
8thperson

キープアライブなどを使用しても、接続が失敗する理由はたくさんあります。したがって、自動的に再起動するメカニズムを検討する必要があります。

私がやることは:

  1. パスワードなしモードでキーを使用してログインできるようにSSHエンドポイントを設定します。 パスワードなしのSSHログインを設定するにはどうすればよいですか?

  2. 接続を無限ループで行うスクリプトを準備します---失敗した場合は再起動します。 それでも「キープアライブ」を使用 ;

  3. 起動時に起動: 起動時に起動するプログラムを取得するにはどうすればよいですか?

ユーザーとしてsshを実行するには、おそらくsu -c(またはSudo)を使用する必要があることに注意してください--- /etc/rc.localのコマンドはrootとして実行されます。 (ありがとう@muru)。

4
Rmano

接続が切断された場合、接続を自動的に再起動するとします。それを行うパッケージがあります:autossh。たとえば、 こちら 使用方法。このリンクには、起​​動時に再起動するための起動スクリプトもありますが、比較的簡単です。接続障害が発生したときに再起動するのは困難です。

4
abligh