在配置文件/etc/ssh/sshd_config中,我想为一些特定用户(或组)确定PasswordAuthentication条目,如:
Match Group xyz_admin, xyz_support
PasswordAuthentication no
Match User yvonne,yvette
PasswordAuthentication yes
我不想干扰或控制类似但不相关的条目,这些条目可能存在也可能不存在,比如:
Match User xavier
X11Forwarding yes
Match Group alice
AllowTcpForwarding yes
以下Augas表达式创建了我需要的条目,但可能会损坏现有的配置条目。
set /files/etc/ssh/sshd_config/Match[1]/Condition/Group "xyz_admin,xyz_support"
set /files/etc/ssh/sshd_config/Match[1]/Settings/PasswordAuthentication "no"
set /files/etc/ssh/sshd_config/Match[2]/Condition/User "yvonne,yvette"
set /files/etc/ssh/sshd_config/Match[2]/Settings/PasswordAuthentication "yes"
知道我如何使这些表达式更具体,从而避免干扰任何现有的和不相关的"匹配"条目吗?
您可以使用Condition/*
子节点来过滤掉Match
节点。
例如,您可以看到它是如何在puppet sshd_config
提供程序(Ruby中)中完成的。请注意,sshd_config
中的所有键都是不区分大小写的,因此需要使用正则表达式来确保匹配它们,而不管它们的大小写如何。