EC2实例克隆GitHub仓库遇Permission denied(publickey)问题求助
问题原因及解决方法
核心原因分析
你遇到的情况是SSH认证成功但git克隆失败,大概率是git未正确使用认证通过的密钥,或者账号无仓库权限,具体分以下几种情况:
1. SSH密钥未被git关联使用
虽然ssh -Tv git@github.com能成功,但git可能没有自动使用你生成的id_ed25519密钥,尤其是当ssh-agent未加载该密钥时:
- 先启动ssh-agent:
eval "$(ssh-agent -s)" - 将密钥加入agent:
ssh-add ~/.ssh/id_ed25519 - 再次尝试克隆命令
2. 当前GitHub账号无仓库权限
SSH认证成功只代表账号有效,但目标仓库如果是私有,你需要确认:
- 当前SSH对应的GitHub账号是仓库所有者,或者已被添加为协作者
- 登录GitHub网页,进入仓库的「设置」→「协作人员和团队」,检查权限配置
3. 多密钥环境下git选错密钥
如果EC2上存在多个SSH密钥,git可能优先使用了其他未授权的密钥,可通过配置指定:
在~/.ssh/config中添加以下内容:
Host github.com IdentityFile ~/.ssh/id_ed25519 User git
保存后重新执行克隆命令
4. 密钥文件权限不符合要求
SSH对密钥文件权限要求严格,过宽的权限会被拒绝:
- 设置目录权限:
chmod 700 ~/.ssh - 设置私钥权限:
chmod 600 ~/.ssh/id_ed25519 - 设置公钥权限:
chmod 644 ~/.ssh/id_ed25519.pub
内容的提问来源于stack exchange,提问作者oderfla
相关产品推荐
相关产品推荐

