Ssh

如何否定 sshd_config 中匹配條件塊中的地址條件?

  • August 24, 2021

當使用者從我的區域網路外部通過 SSH 登錄到我的區域網路時,我想強制他們輸入特定命令。我的想法是,ForceCommandMatch條件塊中使用,它匹配除我 LAN 中的地址之外的所有地址。

根據以下內容,我嘗試了以下方法man 5 sshd_config

  • Match Address !192.168.1.0/24允許來自任何地方的使用者執行任何命令。
  • Match Address !192.168.*允許來自任何地方的使用者執行任何命令。
  • Match !Address 192.168.*通過sshd拒絕啟動來阻止執行任何命令。

(“模式”部分)!中描述了使用模式求反。這如何應用於地址?man 5 ssh_config

根據此 ServerFault 答案,出於某種未知原因,您需要添加萬用字元匹配才能執行此操作。然而,CIDR 表示法似乎確實有效。例如:

Match Address *,!192.168.1.0/24
   ForceCommand /bin/false

這適用於我的 OpenSSH 5.9p1。

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