GitLab Runner在Windows 10执行SSH时卡顿问题求助
Windows 10 GitLab Runner SSH卡壳问题解决方案
1. 检查Runner的运行身份
Windows下GitLab Runner默认用Local System账户运行,这个账户和你日常登录的用户属于完全不同的环境,它读取不到你用户目录C:\Users\<你的用户名>\.ssh里的密钥文件。
- 解决步骤:
- 打开
services.msc找到GitLab Runner服务,右键选择「属性」 - 切换到「登录」标签,选择「此账户」,输入你本地能正常SSH的账户密码,重启服务
- 重新触发流水线测试
- 打开
2. 显式指定SSH密钥路径
Runner运行时可能找不到默认的密钥文件,别依赖系统自动识别,直接在SSH命令里明确指定:
ssh -i C:/Users/<你的用户名>/.ssh/id_rsa 目标机器用户名@目标机器IP "要执行的命令"
路径记得用正斜杠,或者把反斜杠转义成\\格式
3. 处理Known_hosts指纹验证问题
Local System账户的known_hosts文件不在你用户的.ssh目录下,第一次连接目标机器时会弹出指纹确认请求,直接导致流水线卡壳。
- 两种解决办法:
- 用Runner的运行账户(如果改了就是你自己的用户,没改的话需要用Local System身份打开cmd)手动连接一次目标机器,确认指纹以生成
known_hosts文件 - 测试环境可临时加参数跳过验证(生产环境不推荐):
ssh -o StrictHostKeyChecking=no -i <密钥路径> 目标机器用户名@目标机器IP "要执行的命令" - 用Runner的运行账户(如果改了就是你自己的用户,没改的话需要用Local System身份打开cmd)手动连接一次目标机器,确认指纹以生成
4. 核对Deploy Keys的权限
别只确认GitLab仓库里加了Deploy Keys,要检查目标机器的~/.ssh/authorized_keys文件里确实存在这个公钥,同时:
authorized_keys文件权限必须设为600.ssh目录权限必须设为700- 公钥本身不能有多余换行或格式错误
内容的提问来源于stack exchange,提问作者Yusuf TIGLI
相关产品推荐
相关产品推荐

