Linux主機閒置自動登出
設定Linux 主機在一定時間未操作時,自動登出系統。Redhat官網How to keep TCP sessions alive for extended periods of time? ,可以在shell、ssh、ftp等項目設定自動斷線。
Bash Shell timeout基本設定
檢查是否有設定timeout時間# export | grep TMOUT
一次性設定 ( 10分鐘自動登出 )
# export TMOUT=600
# export TMOUT=600
固定性更改 ( 10分鐘自動登出 )
對於特定使用者,在 $HOME/.bashrc 進行設定。
# echo "TMOUT=600" >> ~/.bashrc
對於所有用戶,在 /etc/bashrc 設定。
# echo "TMOUT=600" >> /etc/bashrc
或
增加檔案
# vi /etc/profile.d/auto-logout.sh
---
#!/bin/bash
#Auto-logout in 600 seconds if the session is idle
export TMOUT=600
readonly TMOUT
---
# echo "TMOUT=600" >> /etc/bashrc
或
增加檔案
# vi /etc/profile.d/auto-logout.sh
---
#!/bin/bash
#Auto-logout in 600 seconds if the session is idle
export TMOUT=600
readonly TMOUT
---
# source /etc/profil
readonly 設定變數和函數為只有讀取權限。
使用者將無法變更名為 TMOUT 的變數的值。
Openssh 伺服器設定自動登出
Openssh 伺服器自動登出參考官網Which options can be used to configure ssh's timeout?
新增 ClientAliveInterval和ClientAliveCountMax到/etc/ssh/sshd_config檔案
ClientAliveCountMax:使用者活動訊息的統計次數。
ClientAliveInterval:等待使用者輸入的逾時時間。
ClientAliveCountMax:使用者活動訊息的統計次數。
ClientAliveInterval:等待使用者輸入的逾時時間。
伺服器每25秒發送訊息給用戶端,當沒有收到任何回應,累計2次後終止連線。所以是50秒沒有任何輸入自動斷線。
---
ClientAliveInterval 25
ClientAliveCountMax 2
---
使用者2分鐘無使用動作,自動中斷使用者連線。
---
ClientAliveInterval 25
ClientAliveCountMax 2
---
使用者2分鐘無使用動作,自動中斷使用者連線。
---
ClientAliveInterval 2m
ClientAliveCountMax 0
---
正常設定 ClientAliveCountMax 0 是禁止伺服器發送活動訊息及使設定用者輸入的逾時時間 ClientAliveInterval 是可以實現。
但RHEL 8.6 和 RHEL9 中的設定ClientAliveCountMax 0會導致不同的行為,參考官網SSH server no longer terminate inactive sessions when setting ClientAliveCountMax=0,所以建議設定ClientAliveCountMax=1。
ClientAliveInterval 2m
ClientAliveCountMax 0
---
正常設定 ClientAliveCountMax 0 是禁止伺服器發送活動訊息及使設定用者輸入的逾時時間 ClientAliveInterval 是可以實現。
但RHEL 8.6 和 RHEL9 中的設定ClientAliveCountMax 0會導致不同的行為,參考官網SSH server no longer terminate inactive sessions when setting ClientAliveCountMax=0,所以建議設定ClientAliveCountMax=1。
參考資料:
How to keep TCP sessions alive for extended periods of time?
https://access.redhat.com/solutions/23874
Which options can be used to configure ssh's timeout?
https://access.redhat.com/solutions/25773
https://access.redhat.com/solutions/25773
SSH server no longer terminate inactive sessions when setting ClientAliveCountMax=0
https://access.redhat.com/solutions/6962538
Linux / UNIX Automatically Logout BASH / TCSH / SSH Users After a Period of Inactivity
https://www.cyberciti.biz/faq/linux-unix-login-bash-shell-force-time-outs/
Linux / UNIX Automatically Logout BASH / TCSH / SSH Users After a Period of Inactivity