我想在/etc/ssh/sshd_config
Protocol 2
Ciphers aes256-ctr
PermitRootLogin no
X11Forwarding no
Match User joebob
X11Forwarding yes
AuthorizedKeysFile .ssh/authorized_keys
PermitEmptyPasswords no
RSAAuthentication no
RhostsRSAAuthentication no
IgnoreUserKnownHosts no
问题是
启动 SSH 守护进程 /etc/ssh/sshd_config 第 40 行:
匹配块中不允许指令“IgnoreUserKnownHosts”
看起来在 Match 语句之后的第一个指令之后有多少指令被包含在匹配中?
如果我把 Match 语句放在文件的最后,它就会起作用sshd_config
。
我不想那样做。
有没有一种方法可以让我在文件顶部附近放置这个匹配语句,就在我的 X11Forwarding no 语句之后?
我在文件顶部有我关心的所有相关 ssh 设置,我希望我的匹配用户在 X11forwarding no 之后,所以我知道它正在发生。如果它放在文件的底部,我会忘记它。
我的目标是为除/etc/passwd
.
答案1
正如man sshd_config
和Match
部分中提到的:
在关键字后面的行中只能使用关键字的子集
Match
。可用的关键字有AllowAgentForwarding、AllowTcpForwarding、Banner、ChrootDirectory、ForceCommand、GatewayPorts、GSSAPIAuthentication、HostbasedAuthentication、KbdInteractiveAuthentication、KerberosAuthentication、KerberosUseKuserok、MaxAuthTries、MaxSessions、PubkeyAuthentication、AuthorizedKeysCommand、AuthorizedKeysCommandRunAs、PasswordAuthentication、PermitEmptyPasswords、PermitOpen、PermitRootLogin、RequiredAuthentications1、RequiredAuthenticationsRSA Rhosts2、身份验证、RSA身份验证、X11DisplayOffset、 X11Forwarding 和 X11UseLocalHost
很好,正如您所看到的,IgnoreUserKnownHosts
不能在“匹配”部分中。如果有的话,请将其移至第一个匹配项,或者将所有Match
部分(如果有,一个或多个)放在配置文件的末尾(建议);否则 Match 后的所有配置将覆盖全局配置并joebob
仅适用于您的用户 ( )。
因此建议将所有匹配移动到配置文件的末尾。
注意:每个Match
块都可以通过启动另一个Match
块或配置文件结束来结束,或者如果您键入Match All
此后的每个后续配置,则将被视为全局配置。
答案2
要标记匹配块的结尾,您可以使用“全部匹配”
Protocol 2
Ciphers aes256-ctr
PermitRootLogin no
X11Forwarding no
Match User joebob
X11Forwarding yes
Match all
AuthorizedKeysFile .ssh/authorized_keys
PermitEmptyPasswords no
RSAAuthentication no
RhostsRSAAuthentication no
IgnoreUserKnownHosts no