是否可以為特定 Linux 使用者設定活動 ssh 連線的時間限制?

是否可以為特定 Linux 使用者設定活動 ssh 連線的時間限制?

我目前正在研究一個有趣的 CTF 挑戰的想法。然而,這項挑戰的主要障礙之一是允許使用者在 ssh 連線上有特定的時間。

本質上,使用者必須使用質詢使用者 ssh 進入 Linux VM。他們有 10 分鐘的時間找到 10 個標誌片段,這些標誌片段必須按一定順序排列,然後 SSH 會話終止,觸發交換標誌片段位置的事件。此時用戶必須開啟新的 SSH 連線並繼續搜尋。

這裡的主要問題是限制用戶的時間。這可以透過 SSH 實現嗎?如果是這樣我該如何達成這個目標?

預先感謝您的任何幫助。

答案1

嗯,透過 SSH 來做這件事會非常困難。我認為最簡單的方法是每次透過 ssh 登入特定帳戶時啟動一個後台程序,這會在 10 分鐘後終止所有 ssh 連線。老實說,這很容易。

您可以在 ~/.profile 或 ~/.bashrc 中新增類似內容

sleep 600
killall --user {whateverhis/herusernameis}
end

或者你明白了。

答案2

用於ForceCommandsshd_config確保登入後執行:

Match User ctfuser
  ForceCommand "(sleep 600; killall -u ctfuser)& bash"

如果您只需要 shell 訪問,這就足夠了。如果您還需要 SFTP 或 SCP,則需要對其進行一些調整。

相關內容