求助:Windows 10自托管GitHub Actions运行器出现Host key verification failed错误
解决Windows 10自托管GitHub Actions运行器的Host key verification failed问题
针对你遇到的Host key verification failed. [error]fatal: Could not read from remote repository.错误,结合你已尝试的操作,问题核心大概率是自托管运行器的执行用户上下文与你手动操作的用户不一致,导致你添加的known_hosts文件对运行器无效。以下是具体解决步骤:
1. 确认自托管运行器的执行账户
Windows上的GitHub Actions自托管运行器默认以NT SERVICE\GitHubActionsRunner服务账户运行,而非你手动操作时的本地用户账户。你可以通过以下方式确认:
- 打开服务管理器(运行
services.msc),找到GitHub Actions Runner服务,查看“登录身份”字段。
2. 为运行器账户配置SSH主机密钥
找到运行器账户对应的.ssh目录:
- 如果是默认服务账户,目录路径为
C:\Windows\ServiceProfiles\GitHubActionsRunner\.ssh(若该目录不存在,手动创建)。 - 将你通过
ssh-keyscan github.com生成的主机密钥内容,写入该目录下的known_hosts文件。
3. 调整文件权限
确保运行器账户对.ssh目录和known_hosts文件拥有读取权限:
- 右键
.ssh目录 → 属性 → 安全 → 编辑。 - 添加运行器账户(如
NT SERVICE\GitHubActionsRunner),赋予“读取和执行”权限。 - 对
known_hosts文件执行同样的权限设置。
4. 替代方案:修改checkout步骤使用HTTPS(无需SSH验证)
如果上述方法仍未解决,可以修改actions/checkout步骤,强制使用HTTPS而非SSH:
- name: Check out repository code uses: actions/checkout@v3 with: ssh-key: '' # 清空SSH密钥配置,强制切换为HTTPS方式
或者直接指定仓库HTTPS地址并使用内置token:
- name: Check out repository code uses: actions/checkout@v3 with: repository: your-username/your-repo-name fetch-depth: 1 token: ${{ secrets.GITHUB_TOKEN }}
5. 验证配置
重新触发GitHub Action(比如推送一次代码到feature分支),检查checkout步骤是否正常执行。
内容的提问来源于stack exchange,提问作者ysief-001
相关产品推荐
相关产品推荐

