如何可以否定sshd_config中匹配条件块中的地址条件?

我想强制用户进入特定的命令,当他们从我的局域网外部通过SSHlogin到我的局域网时。 我的想法是,在Match条件块中使用ForceCommand ,它匹配除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描述(Section“Patterns”) 。 这如何应用于地址?

根据这个ServerFault的答案 ,由于一些未知的原因,你需要添加通配符匹配,才能做到这一点。 CIDR表示法似乎工作。 例如:

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

这对OpenSSH 5.9p1适合我。