セキュリティ上の理由から、SSHセッションが常にアクティブ(アイドル状態ではない)であっても、最大持続時間を2時間に制限する必要があります。
sshd_configを使用すると、セッションアイドル時間ClientAliveInterval
とプロパティを設定できることがわかります。ClientAliveCountMax
これは私の興味ではありません。
セッションの最大アクティブ時間を制御するように構成できる他の設定はありますか? SSHデーモンはcentosと同様にAmazon Linux 2で実行されます。
答え1
sshd_config
特定の期間が経過すると、アクティブセッションを終了するオプションはありません。これを行う一般的な方法は、サーバー上でタスクを実行し、sshセッションが長すぎるのを見つけてプロセスを終了することです。
開発者がデータベーススキーマの変更(しばしば「移行」と呼ばれる)を実行するなどの重要なコマンドを実行するためにサーバーにログインすると、これは非生産的になる可能性があります。このコマンドは実行に時間がかかり、途中で中断しないでください。 CI / CDシステムは通常、アプリケーション配布プロセスの一部としてデータベース移行コマンドを実行するため、一時コマンドを実行している対話型ユーザーにのみ発生するわけではありません。
したがって、タスク(自分で作成する場合)には、セッションを終了しないログイン許可リストを含める必要があります。または、2時間のデフォルト値とは異なる(より長い)最大許容時間を持つログインのリストです。
答え2
さて、SSHでこれを行うのは非常に難しいでしょう。最も簡単な方法は、SSHを介して特定のアカウントにログインするたびにデーモンを起動することです。これにより、10分後にすべてのSSH接続が切断されます。正直簡単です。 ~/.profile または ~/.bashrc にこのような内容を追加できます。
sleep 600
killall --user {whateverhis/herusernameis}
end
sshd_configでForceCommandを使用してください。必ずログイン後に実行してください。
특정 Linux 사용자에 대해 활성 SSH 연결에 대한 시간 제한을 설정할 수 있습니까?
Match User ctfuser
ForceCommand "(sleep 600; killall -u ctfuser)& bash"
아니면 ForceCommand
맞춤설정을 시작하세요.script
구성 파일(/etc/ssh/sshd_config)에 다음 매개변수를 추가하면 됩니다.
한 가지 아이디어는 사용자가 작업할 때마다 타이머가 다시 시작되거나, 사용자가 10분마다 또는 세션이 닫히려는 마지막 5분 동안 콘솔 메시지를 받는 것입니다.