GitHub可通过SSH连接但无法克隆仓库的问题求助
解决GitHub SSH克隆权限拒绝问题
核心原因
虽然你测试SSH连接成功,但git克隆时可能优先使用了电脑上已有的工作SSH密钥,而该密钥没有对应仓库的访问权限,导致报错。
解决步骤
1. 创建/编辑SSH配置文件,指定GitHub专用密钥
进入~/.ssh目录,创建或编辑config文件:
cd ~/.ssh touch config # 文件不存在则创建 nano config # 用编辑器打开,也可使用vim等工具
添加以下内容(替换成你的GitHub私钥文件名,比如id_rsa_github):
Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_github IdentitiesOnly yes
IdentitiesOnly yes是关键设置,强制SSH只使用指定的密钥,避免尝试其他无关密钥。
2. 调整密钥文件权限
SSH对密钥权限要求严格,权限过宽会被拒绝使用,执行以下命令修正:
chmod 600 ~/.ssh/id_rsa_github chmod 640 ~/.ssh/id_rsa_github.pub
3. 重新验证SSH连接
运行测试命令确认配置生效:
ssh -T git@github.com
应返回成功提示:
Hi my github username! You've successfully authenticated, but GitHub does not provide shell access.
4. 再次尝试克隆仓库
现在执行克隆命令,即可正常拉取仓库:
git clone git@github.com:my-username/BAP24.git
额外检查点
- 确认添加到GitHub个人资料的公钥,是你专门为GitHub生成的那一个,而非工作密钥的公钥
- 确认目标仓库
my-username/BAP24确实存在,且你的GitHub账号拥有该仓库的访问权限(私有仓库需确保账号已被授权)
内容的提问来源于stack exchange,提问作者Stef Verniers
相关产品推荐
相关产品推荐

