我想强制用户进入特定的命令,当他们从我的局域网外部通过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适合我。