web-dev-qa-db-ja.com

OpenSSHのデフォルトのアイドルタイムアウトは何ですか?

この簡単な質問に対する回答が見つからないようです。これは、コンプライアンスのドキュメントに必要です。

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には何も表示されません。

27
Banjer

sshd_configのコメント行には通常、デフォルトが表示されます。これは、質問のすべての行に当てはまります。これは sshd_config manpage で確認できます。関連するスニペットは次のとおりです。

TCPKeepAlive

      システムがTCP=キープアライブメッセージを反対側に送信する必要があるかどうかを指定します。メッセージが送信されると、接続の終了またはいずれかのマシンのクラッシュが適切に通知されます。ただし、これは接続ルートが一時的にダウンしていて、一部の人が迷惑だと感じる場合は、が終了します。一方、TCPキープアライブが送信されない場合、セッションがサーバー上で無期限にハングし、「ゴースト」ユーザーが残る場合があります。サーバーリソースを消費します。

      デフォルトは「はい」(TCPキープアライブメッセージを送信する))であり、ネットワークがダウンしたり、クライアントのホストがクラッシュしたりすると、サーバーが通知します。これにより、セッションが無限にハングするのを回避できます。

      TCPキープアライブメッセージを無効にするには、値を「no」に設定する必要があります。

      このオプションは、以前はKeepAliveと呼ばれていました。

ClientAliveCountMax

      sshd(8) クライアントからメッセージを受信せずに送信できるクライアントアライブメッセージ(以下を参照)の数を設定します。クライアントアライブメッセージの送信中にこのしきい値に達すると、sshdはクライアントを切断し、セッションを終了します。クライアントアライブメッセージの使用はTCPKeepAliveとは大きく異なることに注意することが重要です(未満)(上)。クライアントアライブメッセージは暗号化されたチャネルを介して送信されるため、なりすましはできません。 TCPKeepAliveによって有効にされるTCPキープアライブオプションはスプーフィング可能です。クライアントアライブメカニズムは、クライアントまたはサーバーは、接続がいつ非アクティブになったかを知ることに依存しています。

      デフォルト値は3です。IfClientAliveInterval(下記参照)が15に設定されており、ClientAliveCountMaxはデフォルトのままで、応答しないSSHクライアントは約45秒後に切断されます。このオプションはプロトコルバージョン2にのみ適用されます。

ClientAliveInterval

      クライアントからデータが受信されなかった場合にタイムアウト間隔を秒単位で設定します。 sshd(8) は、暗号化されたチャネルを介してメッセージを送信し、クライアントからの応答を要求します。デフォルトは0で、これらのメッセージがクライアントに送信されないことを示します。このオプションはプロトコルバージョン2にのみ適用されます。
24
jordanm

クライアント側またはサーバー側のいずれかにSSHキープアライブを設定できます。

クライアント側

ファイル:/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

9
Yamanoteone

OpenSSHは、しばらくアイドル状態であったシェルセッションを終了しません。これはOpenSSHが行うことではありません。アイドル状態のシェルセッションの終了は、OpenSSHの構成とは関係ありません。

表示されている設定は、接続がダウンしたときのタイムアウトに関連しており、リモートホストのシェルや、ユーザーがそこで行っていることや行っていないことには関係ありません。

リモートホストのシェルは、しばらくアイドル状態になると終了する(または他のプロセスによって強制終了される)ことがありますが、これはサーバー上のSSHサービスおよびSSHクライアントの構成とは関係ありません。

関連:


sshd設定をダンプするには、rootとして「拡張テストモード」を使用します。

_sshd -T
_

これは the sshd(8) manual に文書化されています(OpenBSDで_OpenSSH_7.7, LibreSSL 2.7.2_を見てください):

_-T_

拡張テストモード。構成ファイルの有効性を確認し、有効な構成をstdoutに出力してから終了します。オプションで、1つ以上の_-C_オプションを使用して接続パラメーターを指定することにより、一致ルールを適用できます。

このオプションは、2008年にOpenSSH 5.1/5.1p1のsshdに追加されました。

7
Kusalananda

非アクティブな状態が一定期間続いた後にSSH接続を閉じることが要件である場合、シェル自体がタイムアウト変数を提供します。

Bashの場合:

TMOUT:ゼロより大きい値に設定すると、TMOUTは組み込みの読み取りのデフォルトのタイムアウトとして扱われます。端末からの入力でTMOUT秒後に入力が到着しない場合、selectコマンドは終了します。対話型シェルでは、この値は、プライマリプロンプトを発行してから入力を待機する秒数として解釈されます。入力が到着しない場合、その秒数だけ待機した後、bashは終了します。

TMOUT=10を実行してこれをテストし、10秒待って接続を閉じます。

Tcshの場合:

Autologoutシェル変数を設定して、一定の非アクティブ時間が経過するとシェルをログアウトまたはロックすることができます。

Tcshでは、10のタイムアウトを設定するための構文set autologout=10です。これは元のcshでは機能しません。

3