我想在用户通过 SSH 从我的 LAN 外部登录到我的 LAN 时强制用户执行特定命令。我的想法是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
(“模式”部分)。这如何应用于地址?
答案1
根据这个 ServerFault 答案,出于某些未知原因,您需要添加通配符匹配才能执行此操作。但是 CIDR 表示法似乎有效。例如:
Match Address *,!192.168.1.0/24
ForceCommand /bin/false
这对我来说适用于 OpenSSH 5.9p1。