この簡単な質問に対する答えが見つからないようです。コンプライアンス文書が必要です。
CentOS 6.5(OpenSSH 5.3p1-94.el6)のデフォルトインストールでは、ユーザーのSSHセッションは非アクティブの後、どのくらい後に終了しますか?アイドルタイムアウトを増やすために次のように設定できると思いますが、デフォルトではコメントアウトされています。
$ grep -i alive /etc/ssh/sshd_config
#TCPKeepAlive yes
#ClientAliveInterval 0
#ClientAliveCountMax 3
また、現在の設定リストをダンプするコマンドがありますかsshd
?私は何も見ませんでしたman sshd
。
答え1
のコメント行はsshd_config
通常デフォルト値を表示します。これはあなたの質問のすべての行に当てはまります。することができますsshd_config
マンページ。関連スニペットは次のとおりです。
TCPKeepAlive
システムが TCP 接続維持メッセージを相手に送信するかどうかを指定します。これらのメッセージが送信されると、接続が中断されるか、コンピュータの1つがクラッシュしていることを正しく知ることができます。しかし、これは、ルーティングが一時的に中断されると、接続が中断され、一部の人々が不快感を感じる可能性があることを意味します。一方、TCP Connection Messagesが送信されない場合、セッションはサーバー上で無期限に中断され、「ゴースト」ユーザーが残り、サーバーリソースを消費する可能性があります。
デフォルトは「yes」です(TCP Connection Messagesメッセージの送信)。ネットワークが失敗した場合、またはクライアントホストがクラッシュしている場合は、サーバーがそれを通知します。これにより、無限停止セッションが防止されます。
TCP keepaliveメッセージを無効にするには、この値を「no」に設定する必要があります。
このオプションは以前に知られていました
KeepAlive
。
ClientAliveCountMax
メッセージなしで送信できるクライアントアクティブメッセージの数(以下を参照)を設定します。SSHD(8)クライアントから返されたメッセージを受け取ります。クライアントアクティビティメッセージの送信中にこのしきい値に達すると、sshdはクライアントの接続を切断してセッションを終了します。クライアント活動メッセージの使用は、以下に関連していることに注意してください。
TCPKeepAlive
(次のような)(以上)。クライアントアクティビティメッセージは、偽装できないように暗号化されたチャネルを介して送信されます。 TCP keepaliveオプションが有効になっています。TCPKeepAlive
だますことができます。クライアント側のアクティブメカニズムは、クライアントまたはサーバーが接続が無効になるタイミングを知る必要がある場合に便利です。デフォルトは 3 です。もし
ClientAliveInterval
(下記参照)は15に設定されます.ClientAliveCountMax
デフォルト値をそのままにすると、応答しないSSHクライアントは約45秒後に切断されます。このオプションはプロトコルバージョン2でのみ利用可能です。
ClientAliveInterval
クライアントからデータが受信されない場合のタイムアウト間隔(秒単位)を設定します。SSHD(8)クライアントから応答を要求するために、暗号化されたチャネルを介してメッセージが送信されます。デフォルト値は 0 です。これは、これらのメッセージがクライアントに送信されないことを意味します。このオプションはプロトコルバージョン2でのみ利用可能です。
答え2
OpenSSHは、一定期間アイドル状態のシェルセッションを終了しません。これはOpenSSHが実行する操作ではありません。アイドルシェルセッションを終了することは、OpenSSH設定には関係ありません。
表示される設定は、接続が切断されたときのタイムアウトに関連し、リモートホスト上のシェルおよびユーザーが実行または実行しない操作とは何の関係もありません。
リモートホストのシェルは、一定時間アイドル状態の後にシャットダウンすることができます(または他のプロセスによってシャットダウンすることができます)。これは、サーバーのSSHサービスおよびSSHクライアント構成とは無関係です。
関連:
- 特定の時間後に対話型SSHセッションを終了する方法(
TMOUT
シェル変数に言及すると、アイドルbash
シェルを終了することもできます)。
sshd
設定をダンプするには、「拡張テストモード」をrootとして使用します。
sshd -T
この内容は次のように記録されます。sshd(8)
手動OpenSSH_7.7, LibreSSL 2.7.2
(OpenBSDで見る):
-T
拡張テストモード。設定ファイルを検証し、有効な設定をstdoutに出力して終了します。。オプションで、1つ以上のオプションを使用して接続パラメータを指定して一致ルールを適用できます
-C
。
このオプションは2008年のsshd
OpenSSH 5.1/5.1p1に追加されました。
答え3
クライアントまたはサーバー側にSSH Keepaliveを設定できます。
顧客
文書:/etc/ssh/ssh_config
コンテンツ:
Host *
ServerAliveInterval XX
ServerAliveCountMax YY
サービス端末
文書:/etc/ssh/sshd_config
コンテンツ:
ClientAliveInterval XX
ClientAliveCountMax YY
抜粋:http://www.sysadmit.com/2016/02/linux-y-vmware-ssh-evitar-desconexion.html
答え4
SSHにはアイドル時間制限はありませんが、次のものを使用できます。シェルTMOUT
変数代わりに。変調を防ぐためにマークしてくださいreadonly
。
SSH にはクライアントとサーバーの両方に接続維持設定がありますが、アイドルタイムアウトではありません。応答しない接続を自動的に検出して閉じるために使用できます。また、アイドルタイムアウトとは反対のタスクを実行することもできます。つまり、ファイアウォールがアイドル接続を期限切れにしないように、偽のトラフィックを定期的に前後に送信できます。
以前のバージョンのSSHでは、次のようにClientAliveCountMax=0
なります。会議数秒間アクティビティがなければ、SSHセッションを終了することはClientAliveInterval
OpenSSH開発者によって文書化されたり意図されたりしませんでした。
# Will time out idle sessions, but only if OpenSSH version < 8.2, e.g., CentOS 7
ClientAliveInterval 60
ClientAliveCountMax 0
これはsshdのバグと見なされます。OpenSSH 8.2から削除されました。これでClientAliveCountMax=0
、アイドルセッションを期限切れにするのではなく、クライアントアクティビティを無効にすることを意味します。よりエラーレポート。