SSH 세션의 최대 기간을 설정하는 방법은 무엇입니까?

SSH 세션의 최대 기간을 설정하는 방법은 무엇입니까?

セキュリティ上の理由から、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)에 다음 매개변수를 추가하면 됩니다.

SSH 연결 후 서버에서 자동으로 스크립트 실행

한 가지 아이디어는 사용자가 작업할 때마다 타이머가 다시 시작되거나, 사용자가 10분마다 또는 세션이 닫히려는 마지막 5분 동안 콘솔 메시지를 받는 것입니다.

동일한 사용자가 여전히 로그인되어 있는 경우 SSH 사용자가 로그인하는 것을 방지하는 방법은 무엇입니까?

SSH에서 다중 연결을 방지하는 방법은 무엇입니까?

SSH 사용자 연결을 끊거나 SSH 로그인 수를 제한하는 방법은 무엇입니까?

関連情報