EC2通过SSH对接GitHub拉取代码报publickey权限错误如何解决?
问题根源
你配置的core.sshCommand参数存在关键错误:ssh -i命令要求指定SSH私钥文件路径,你当前填写的~/.ssh/id_rsa.pub是公钥文件,无法用于身份验证,这是pull报错的核心原因。
修复步骤
- 修改Git配置中的sshCommand参数
可以直接编辑仓库下的.git/config文件,将对应行修改为:
sshCommand = "ssh -i ~/.ssh/id_rsa"
也可以在仓库目录下执行命令完成修改:git config core.sshCommand "ssh -i ~/.ssh/id_rsa"
- 校验SSH文件权限
SSH协议对密钥文件权限有严格要求,权限过高会导致验证失败,在EC2实例中执行以下命令修正权限:
chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa
- 验证功能
先执行ssh -T git@github.com确认身份验证正常,再执行git pull即可完成代码拉取。
可选排查方案
如果修改后仍然报错,可以将sshCommand调整为调试模式,输出完整验证日志定位问题:git config core.sshCommand "ssh -v -i ~/.ssh/id_rsa"
内容的提问来源于stack exchange,提问作者NorthmaN
相关产品推荐
相关产品推荐

