在Linux中如何登出其他 SSH 使用者

大雄45發表於2023-04-08
導讀 今天我們簡單介紹一下如何踢掉其他透過 ssh 連線到系統中的使用者。
在Linux中如何登出其他 SSH 使用者在Linux中如何登出其他 SSH 使用者

Pixelated word   made from cubes, mosaic pattern

如果你透過 ssh 登入了一個遠端 Linux 系統,只需要使用 exit  即可退出 ssh。那麼,如果你想要登出其他透過 ssh 登入到系統中的使用者呢?

在 ssh 會話中登出使用者

首先,檢查 Linux 系統中已登入的使用者列表。要實現這一點有多種方法,在這裡我們使用 who  ,連同 -u 選項,會顯示登入到系統中   會話的程式 ID:

who -u

其輸出如下所示:

root@localhost:~# who -u
abhishek pts/0        2021-04-05 09:25 00:01       31970 (223.180.180.107)
prakash  pts/1        2021-04-05 09:26   .         32004 (223.180.180.107)
root     pts/2        2021-04-05 09:26   .         32039 (223.180.180.107)

那麼接下來,假設我們的任務是從 ssh 會話中踢除使用者 prakash,其 shell 會話的程式 ID 為 32004。完成後該使用者將會斷開連線。

為此,可以使用 kill 命令傳送一個 SIGHUP 訊號,該訊號用於報告使用者的終端已經斷開,還可以有效的斷開會話中所有程式與控制終端的連線。

sudo kill -HUP 32004

當然,要執行這個操作,你需要是 root 使用者或者具有 sudo 許可權。

在Linux中如何登出其他 SSH 使用者在Linux中如何登出其他 SSH 使用者

作為一個相對友好的習慣,在踢掉使用者之前,最好發一條資訊給他。傳送資訊可以使用 write 命令,如下所示:

echo "Your session will end in 2 minutes. Save your work!" | write prakash pts/2

那麼,如果傳送 SIGNHUP 訊號不管用怎麼辦?還可以強制終止 ssh 會話。

強制終止 ssh 會話

如果 SIGHUP 訊號不起作用,則可以傳送 SIGKILL 訊號。

sudo kill -9 32004
如果有多個 ssh 會話,可以從所選會話中登出使用者

如果統一使用者從多個系統或終端登入,上述操作只會影響我們要終止的會話,它不會將使用者的所有會話都踢除出去。

比如,當 ssh 會話由於某些原因(如網路斷開)而結束通話,此時我們可以終止終端,並從新終端開啟另一個 ssh 會話,這種情況下,我們可以看到自己登入到系統兩次。

這個時候,我們需要關閉不在活動的會話。

在 who 命令的輸出中,我們可以根據登入的時間來判斷要踢除哪個使用者。當然也有可能會因為錯誤的判斷而把自己踢掉,不過也沒關係,可以再次重新登入。

在Linux中如何登出其他 SSH 使用者在Linux中如何登出其他 SSH 使用者

以上就是本次分享全部內容,歡迎討論。

原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2943144/,如需轉載,請註明出處,否則將追究法律責任。

相關文章