Linux

強制每使用者 ssh 埠

  • August 29, 2019

我想允許通過不同的埠訪問伺服器上的每個使用者。例如; user1 只能通過 2201 埠 ssh 訪問,使用者 2 只能通過 2202 埠訪問。我已經通過編輯“/etc/ssh/sshd_config”並添加兩行允許通過埠 2201 和 2202 訪問:

`Port 2201

Port 2202`

兩個使用者現在都可以通過兩個埠(和 22)訪問 ssh。

  • 我如何將它們限制在自己的埠上?

(另外),使用者

$$ except root $$沒有任何自動創建的“~/.ssh/”目錄,所以我創建了一個並嘗試添加一個配置文件和一個 authorized_keys 文件——這些似乎沒有任何區別。 作業系統是 debian 擠壓和提前感謝。

您必須為每個包含(以及通常的配置選項)ListenAddress 和 AllowUsers 關鍵字的使用者/埠組合創建一個單獨的 sshd_config。

sshd_config_2201

ListenAddress 0:2201
AllowUsers user1

sshd_config_2202

ListenAddress 0:2202
AllowUsers user2

等等

您需要使用-f開關為每個使用者執行一次 sshd 以指定單獨的配置文件。

有一個解決方案。您可以使用兩個匹配條件:一個在第一個埠上阻止使用者 2,另一個在第二個埠上阻止使用者 1。應該是這樣的:

Match User user2, LocalPort 2201
  DenyUsers user2

Match User user1, LocalPort 2202
  DenyUsers user1

我有一個類似的配置正在執行,它執行得很好(不用說它是有意義的)。

順便說一句:結合匹配和全域允許/拒絕規則不起作用 - 至少它對我不起作用。

引用自:https://serverfault.com/questions/247291