Windows 10非管理员用户启动ssh-agent提示'unable to open service handle'求助
解决Windows 10普通用户无法运行ssh-agent的问题
针对普通用户worker运行C:\Windows\System32\OpenSSH\ssh-agent.exe时提示unable to open service handle、退出码255的问题,以下是无需提升管理员权限的排查修复方案:
1. 检查ssh-agent服务权限设置
这是最常见的触发原因——服务权限被意外修改,导致普通用户无法访问服务句柄:
- 用管理员账号打开「服务」(执行
services.msc),找到OpenSSH Authentication Agent服务 - 右键选择「属性」→「安全」选项卡,确认
Authenticated Users组拥有至少「读取」权限(如需手动启停服务,额外勾选「启动/停止」权限) - 若权限缺失,点击「编辑」,添加
Authenticated Users组,勾选对应权限后保存应用
2. 重新注册ssh-agent服务
如果权限重置无效,可直接重新注册服务恢复默认配置:
- 管理员打开PowerShell,依次执行命令:
该流程会先停止并删除现有服务,再将ssh-agent重新注册为系统服务,自动恢复默认权限配置Stop-Service ssh-agent sc delete ssh-agent ssh-agent.exe -ss Start-Service ssh-agent
3. 修复OpenSSH组件
若服务本身出现损坏,可通过重置OpenSSH组件解决:
- 打开「设置」→「应用」→「可选功能」,找到「OpenSSH Client」(若安装了「OpenSSH Server」也一并处理)
- 点击「卸载」,重启系统后回到同一界面,重新安装「OpenSSH Client」
4. 调整本地安全策略(兜底方案)
如果以上方法都无效,检查本地安全策略的用户权限配置:
- 管理员打开「本地安全策略」(执行
secpol.msc),进入「本地策略」→「用户权限分配」 - 找到「作为服务登录」,确认
NT AUTHORITY\Authenticated Users或worker用户已被添加 - 找到「管理审核和安全日志」,确保
Authenticated Users组拥有「读取」权限
验证修复
切换到worker用户,打开PowerShell执行:
Start-Service ssh-agent ssh-agent.exe
若无报错,再尝试ssh-add测试密钥添加功能即可。
内容的提问来源于stack exchange,提问作者Peter Zaitcev
相关产品推荐
相关产品推荐

