Ssh
如何否定 sshd_config 中匹配條件塊中的地址條件?
當使用者從我的區域網路外部通過 SSH 登錄到我的區域網路時,我想強制他們輸入特定命令。我的想法是,
ForceCommand
在Match
條件塊中使用,它匹配除我 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。