You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Action中SSH密钥验证GitHub失败:Host key verification failed

解决GitHub Action中SSH连接GitHub出现「Host key verification failed」的问题

以下是针对你的场景的排查和修复建议:

1. 修正SSH配置文件路径错误

你的代码中写入SSH配置的路径是~/.ssh/config/config,但SSH默认读取的配置文件是~/.ssh/config(并非子目录下的文件),这会导致IdentityFile配置完全不生效。修改这两步:

echo "Host github.com" >> ~/.ssh/config
echo "  IdentityFile ~/.ssh/github_identity.pem" >> ~/.ssh/config

2. 严格设置目录和文件权限

SSH对权限要求非常严格,除了私钥的600权限,还需要确保.ssh目录本身是700权限,否则会被SSH拒绝访问:

mkdir -p ~/.ssh
chmod 700 ~/.ssh  # 新增这一步
echo $EB_COMMON_ACCESS_KEY >> ~/.ssh/github_identity.pem
chmod 600 ~/.ssh/github_identity.pem

3. 确保known_hosts正确生成

尝试追加而非覆盖known_hosts(避免意外清空原有内容),同时可以验证生成的内容:

ssh-keyscan -H github.com >> ~/.ssh/known_hosts  # 用>>代替>
cat ~/.ssh/known_hosts  # 新增这一步,在Action日志里检查是否包含github.com的公钥

4. 启用StrictHostKeyChecking并验证配置

取消注释StrictHostKeyChecking的配置,同时确保配置格式正确(缩进正确):

echo "  StrictHostKeyChecking no" >> ~/.ssh/config

5. 增加SSH调试日志定位问题

在测试SSH时添加-vvv参数获取详细日志,这能帮你精准定位是配置、权限还是密钥本身的问题:

ssh -vvv git@github.com ls /

额外验证点

  • 确认$EB_COMMON_ACCESS_KEY变量在GitHub Action中正确注入,没有换行或格式错误,可以用echo $EB_COMMON_ACCESS_KEY | cat -A查看变量内容的格式
  • 尝试使用绝对路径指定身份文件,比如/home/runner/.ssh/github_identity.pem,避免~在某些shell环境下解析异常

内容的提问来源于stack exchange,提问作者vidi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 17:38:18