Windows Server SSH公钥认证注释管理员组规则生效原因问询
Windows Server OpenSSH 管理员组公钥认证规则原理
配置生效的核心逻辑
sshd_config中的Match指令属于条件覆盖规则:当后方的匹配条件满足时,Match代码块内的所有配置项,都会覆盖全局的同名配置。- 默认配置中的
Match Group administrators是 Windows 版本 OpenSSH 专门添加的规则:只要发起登录的用户属于 Windows 本地管理员组(Administrators),该块内的配置就会生效。 - 块内的
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys配置,会替换 OpenSSH 默认的全局公钥读取规则:管理员组用户的可信公钥不再读取当前用户家目录下的.ssh/authorized_keys文件,而是统一读取系统级路径C:\ProgramData\ssh\administrators_authorized_keys下的全局公钥文件。这就是你将公钥存入对应用户家目录ssh目录不生效的核心原因。
注释两行配置的作用
- 注释这两行配置后,针对管理员组的特殊匹配规则直接失效,所有用户(包括管理员组用户)都会沿用 OpenSSH 全局的公钥文件读取规则,优先读取当前登录用户家目录下
.ssh文件夹内的authorized_keys文件。 - 你之前存入对应用户ssh目录的公钥会被sshd服务正常识别校验,因此可以跳过密码验证,直接完成公钥认证登录。
补充说明:如果你不想注释默认规则,也可以将公钥存入
C:\ProgramData\ssh\administrators_authorized_keys文件,同时确保该文件权限仅开放给 SYSTEM 账户和本地管理员组,否则sshd会因文件权限不安全拒绝读取该文件。
内容的提问来源于stack exchange,提问作者redixhumayun
相关产品推荐
相关产品推荐

