1

在配置文件 /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

以下 Augeas 表达式会创建我需要的条目,但可能会损坏现有的配置条目。

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" 

知道如何使这些表达式更具体,以免弄乱任何现有且不相关的“匹配”条目吗?

4

1 回答 1

0

您可以使用Condition/*子节点来过滤掉Match节点。

例如,您可以在puppetsshd_config提供程序(在 Ruby 中)中看到它是如何完成的。请注意,其中的所有键sshd_config都不区分大小写,因此您需要使用正则表达式来确保匹配它们而不管它们的大小写。

于 2016-07-28T21:12:44.977 回答