切断されたSSH接続を自動的に閉じる方法は?

切断されたSSH接続を自動的に閉じる方法は?

サーバーをリモートで使用すると、ネットワークの問題によりSSH接続が切断されることがあります。サーバーに再接続すると、切断されたセッションは開いたままになります。私が走るとき、私はそれらを見ることができますw

PIDを使用してそのセッションを終了できることを知っていますが、可能であれば削除されたセッションを自動的に終了したいと思います。

どうすればいいですか?

答え1

サーバーのsshd設定を有効または有効にするなど、SSH保持メッセージのいずれかを有効にしますTCPKeepAliveClientAliveInterval

TCPKeepAlive同様に、クライアント構成ではおよびを使用できますServerAliveInterval

TCPKeepAliveKeepAlive以前のバージョンのOpenSSHを使用している場合、以前のバージョンは次のようになります。

TCP keepaliveは、SSHによって構築された暗号化されたトンネルの外部で動作するTCPの機能です。たとえば、実際にはそうではないにもかかわらず、接続がまだ開いているかのように偽装するように欺くことができます。

ClientAlive / ServerAliveは暗号化されたトンネル内で実行されるため、なりすましすることはできません(しかし、私はこれが新しいオプションであり、もちろんCPUに時間がかかると思います)。

答え2

TCPタイムアウトに達した場合、またはKeepAliveメッセージが以前の接続からの応答を受け取らない場合は、すぐに閉じる必要があります。心配することはありません。

それ以外の場合は、opensshアップストリームに報告する必要があるバグがあります。

関連情報