/etc/inittabのautossh

/etc/inittabのautossh

NATの背後にあるターゲットコンピュータに接続できるようにSSHトンネルを設定しました。私のコンピュータの/etc/inittabに以下を置きました。

tu:2345:respawn:/usr/bin/autossh -M 20000 -f -n -N -T -R 6790:localhost:22 [email protected]

動作します。つまり、ssh -p 6790 me@localhost を実行して接続できます。ただし、場合によっては、ターゲット コンピューターに次のメッセージが表示されます。

INIT: Id "tu" respawning too fast, disabled for 5 minutes

サーバーの/var/log/secureに次のものがあります。

Oct 29 03:11:15 vm sshd[19725]: Accepted publickey for me from 90.179.155.74 port 37416 ssh2
Oct 29 03:11:15 vm sshd[19727]: Received disconnect from 90.179.155.74: 11: disconnected by user
Oct 29 03:17:04 vm sshd[20892]: Accepted publickey for me from 90.179.155.74 port 40116 ssh2
Oct 29 03:17:15 vm sshd[20896]: error: bind: Address already in use
Oct 29 03:17:19 vm sshd[20896]: error: channel_setup_fwd_listener: cannot listen to port: 20000

このような状況が続いています。何が間違っているのか知っていますか?

ベストアンサー1

わかりました。答えを見つけました。 -f オプションを使用して autossh を呼び出すと、それ自体がデーモンプロセスにフォークされ、親プロセスが終了します。だからinitはそれを再生成します...そして続けて...

私はautosshを使うべきだとは思わず、sshだけを使うべきだと思います。 respawnはinitによって実行されるため、autosshによる別の自動respawnは必要ありません。私はその行を次のように変更しました。 tu:2345:respawn:/usr/bin/ssh -n -N -T -R 6791:localhost:22 [email protected]

私も追加しました

ServerAliveInterval 15
ServerAliveCountMax 2

接続を維持するには、/etc/ssh/ssh_configに移動します。

私の考えでは、この設定は大丈夫だと思います。

おすすめ記事