【发布时间】:2022-03-03 22:23:27
【问题描述】:
自从我开始尝试通过证书身份验证方法使用 Ansible 访问我的所有 Windows 主机以来已经有好几天了。我使用脚本来配置 WinRM 并创建自签名证书。在多个主机上,它工作正常,脚本完成后我可以通过证书身份验证连接到它们,但在其他一些主机上(比如 15-20%)这是不可能的。
我收到此错误消息:
fatal: [SERVERNAME]: UNREACHABLE! => {
"changed": false,
"msg": "certificate: the specified credentials were rejected by the server",
"unreachable": true
}
奇怪的是,我在 Windows 事件查看器中看不到登录事件。这是我的 WinRM 配置:
Service
RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
MaxConcurrentOperations = 4294967295
MaxConcurrentOperationsPerUser = 1500
EnumerationTimeoutms = 240000
MaxConnections = 300
MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = false
Auth
Basic = true
Kerberos = true
Negotiate = true
Certificate = true
CredSSP = true
CbtHardeningLevel = Relaxed
DefaultPorts
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *
EnableCompatibilityHttpListener = false
EnableCompatibilityHttpsListener = false
CertificateThumbprint
AllowRemoteAccess = true
Winrs
AllowRemoteShellAccess = true
IdleTimeout = 7200000
MaxConcurrentUsers = 10
MaxShellRunTime = 2147483647
MaxProcessesPerShell = 25
MaxMemoryPerShellMB = 1024
MaxShellsPerUser = 30
监听器和证书映射都是在windows机器上配置的:
Listener
Address = *
Transport = HTTPS
Port = 5986
Hostname
Enabled = true
URLPrefix = wsman
CertificateThumbprint = 927...C26E
ListeningOn = 127.0.0.1, 172.20.x.x
CertMapping
URI = *
Subject = ansibleuser@localhost
Issuer = 579f3eb1c3756339a246843f70e1a89b14fdc244
UserName = ansibleuser
Enabled = true
Password
到目前为止我所尝试的:
- 检查 LocalAccountTokenFilterPolicy 注册表项是否存在
- 通过 winrm configSDDL default 配置对 WinRM 的访问
- 检查 GPO
- 更改密码(选中和取消选中密码永不过期, 等等...)
- 创建另一个本地管理员用户
- 启用基本和未加密的身份验证
- 将连接类型更改为专用(无法从服务器 已加入域)
- 运行ansible提供的脚本配置WinRM
我不明白发生了什么,这让我发疯了。以前有人遇到过这个问题吗?
我愿意接受所有建议,在此先感谢。
【问题讨论】:
标签: ansible