Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 強制登出使用者指令教學:處理殘留 SSH 連線

編輯:關於 Linux

管理 Linux 伺服器時,常遇到使用者因斷網、VPN 斷線或終端機異常關閉,導致 SSH 登入 session 殘留在系統中(顯示 who 仍在線),佔用資源甚至造成帳號鎖定。本文介紹如何快速查詢並強制登出這些「殭屍」連線。

查詢目前登入使用者

who

輸出範例:

root     pts/1  2014-06-04 12:07 (27.115.*.*)
root     pts/2  2014-06-04 13:31 (58.247.*.*)
root     pts/3  2014-06-04 13:42 (58.246.*.*)
root     pts/4  2014-06-04 13:56 (140.207.*.*)
root     pts/5  2014-06-04 14:01 (140.207.*.*)

關鍵欄位:終端機代號(pts/1 ~ pts/5)與來源 IP,用於識別要踢除的 session。

強制登出指定終端機

# 語法:pkill -kill -t 終端機代號
pkill -kill -t pts/1

此指令會向該終端機發送 SIGKILL(-9),強制終止其上所有進程,使用者即被登出。

替代方案:使用 skill 或 kill 配合 PID

# 找出該終端機的 shell PID
ps -ft pts/1

# 直接殺掉 shell 進程(通常是 bash)
kill -9 

pkill -t 較為直觀,適合快速處理;若需更精細控制(如只踢掉特定使用者的特定 session),可配合 ps 篩選後再 kill。

進階:批次清理閒置超時連線

可寫入 /etc/profile 或 /etc/ssh/sshd_config 設定自動斷線:

# sshd_config
ClientAliveInterval 300
ClientAliveCountMax 2
# 300 秒無回應,嘗試 2 次後斷線(共 10 分鐘)

或在 shell 設定 TMOUT=600(10 分鐘無操作自動登出)。

注意事項

  • 操作前請確認目標 session 確為異常殘留,避免誤踢正在工作的使用者。
  • 若為圖形介面登入(tty7、:0 等),同樣適用 pkill -t。
  • root 才能踢除其他使用者;一般使用者僅能踢除自己的 session。

善用 who + pkill -t 組合,能讓您輕鬆維護伺服器登入秩序,釋放被佔用的授權與資源。

Copyright © Windows教程網 All Rights Reserved