GNU/Linux >> Linux の 問題 >  >> Linux

Ssh – Tcp-keepaliveはSshでどのように機能しますか?

「ハートビート」を実行するためにssh接続を使用するシェルスクリプトをコーディングしようとしています。特定のタイムアウト後(接続が切断された後)に、その接続のクライアント側とサーバー側を終了したい。

これまでに見つけたもの:

  • TCPKeepAlive sshの場合はyes/no およびsshd
  • ClientAliveCountMax sshdの場合
  • ClientAliveInterval sshdの場合
  • ServerAliveCountMax sshの場合
  • ServerAliveInterval sshの場合

「ClientAliveCountMax」を変更するには、各ターゲットマシンのsshd_configを変更する必要があります(このオプションはデフォルトで無効になっています)。

ですから、私の質問は、「TCPKeepAlive」を自分の目的にも使用できますか(ソース/ターゲットマシンで他に何も変更せずに)?

ターゲットオペレーティングシステムはSLES11SP2ですが、ここでは関係ないと思います。

承認された回答:

これには、ServerAlive設定を使用することをお勧めします。サーバーでの構成は不要であり、必要に応じてコマンドラインで設定できます。

ssh -o ServerAliveInterval=5 -o ServerAliveCountMax=1 $HOST

これにより、5秒ごとにsshキープアライブメッセージが送信されます。別のキープアライブを送信するときに、最後のキープアライブへの応答が受信されなかった場合、接続は終了します。

ServerAliveIntervalの重要な違い およびTCPKeepAlive は彼らが活動する層です。

  • TCPKeepAlive TCP層で動作します。空のTCPACKパケットを送信します。ファイアウォールはこれらのパケットを無視するように構成できるため、アイドル状態の接続をドロップするファイアウォールを通過すると、接続が維持されない場合があります。
  • ServerAliveInterval sshレイヤーで動作します。実際にはsshを介してデータを送信するため、TCPパケットには暗号化されたデータが含まれており、ファイアウォールはキープアライブか正当なパケットかを判断できないため、これらはより適切に機能します。

Linux
  1. Webサーバーとは何ですか?Webサーバーはどのように機能しますか?

  2. Awkの「!a [$ 0] ++」はどのように機能しますか?

  3. フォーク爆弾はどのように機能しますか?

  1. Makefileとは何ですか?どのように機能しますか?

  2. sig_atomic_t は実際にどのように機能しますか?

  3. Kerberos は SSH とどのように連携しますか?

  1. NGINXとは何ですか?それはどのように機能しますか?

  2. rm はどのように機能しますか? rm は何をしますか?

  3. Linux でデバッガーはどのように機能しますか?