Rundeck Kerberos认证无法执行命令,WinRM请求报错求助
看起来你遇到的核心问题是Rundeck的WinRM配置和Windows服务器的WinRM端口/协议不匹配——从错误信息能看到,Rundeck在尝试往Windows的5986端口(WinRM HTTPS默认端口)发HTTPS请求,但你明明配置的是HTTP协议,而且Windows开放的是5955端口,这几个参数没对齐,导致连接失败。
下面给你一步步排查和解决的方案:
1. 先确认Windows服务器的WinRM实际配置
登录Windows服务器,用管理员权限打开PowerShell,执行以下命令查看WinRM监听的端口和协议:
winrm get winrm/config/Listener
你需要确认是否有一个HTTP类型的Listener,Port字段是你设置的5955。如果没有,得先配置WinRM监听5955端口的HTTP请求,命令参考:
winrm create winrm/config/Listener?Address=*+Transport=HTTP @{Port="5955"}
2. 修正Rundeck的WinRM项目配置
回到Rundeck的项目配置页面,找到WinRM相关设置:
- 确保协议选择的是HTTP(你已经这么做了)
- 把WinRM端口从默认的5986改成你自定义的5955(这里必须和Windows上Listener的HTTP端口完全一致)
- 再次确认「HTTPS证书信任」和「HTTPS服务器主机名验证」都设置为「无」(因为你用的是HTTP,这两个其实不生效,但保持当前配置没问题)
3. 测试CentOS到Windows的网络连通性
在CentOS机器上,用curl测试能不能访问Windows的5955端口:
curl -v http://192.168.0.13:5955/wsman
如果能收到类似XML格式的响应,说明网络和端口是通的;如果连接超时或者被拒绝,那要检查Windows防火墙是否真的开放了5955端口,或者WinRM服务是否正常运行。
4. 额外权限和认证检查
- 确认Windows上的WinRM服务允许你用的本地管理员账号访问,执行以下命令查看认证配置:
winrm get winrm/config/service/auth
确保Basic和Negotiate是true(如果Rundeck用的是这两种认证方式)。
- 如果之前修改过WinRM配置,记得重启WinRM服务:
Restart-Service WinRM
把这些步骤做完后,再重新运行Rundeck的作业,应该就能正常连接了。
内容的提问来源于stack exchange,提问作者Milister
相关产品推荐
相关产品推荐

