sshd_config 中的 Match 条件块中的 Address 条件如何被否定?

sshd_config 中的 Match 条件块中的 Address 条件如何被否定?

我想在用户通过 SSH 从我的 LAN 外部登录到我的 LAN 时强制用户执行特定命令。我的想法是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(“模式”部分)。这如何应用于地址?

答案1

根据这个 ServerFault 答案,出于某些未知原因,您需要添加通配符匹配才能执行此操作。但是 CIDR 表示法似乎有效。例如:

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

这对我来说适用于 OpenSSH 5.9p1。

相关内容