同一GitHub账号下SSH密钥仅对单个仓库生效问题咨询
问题成因
- 最常见原因是新仓库的远程地址使用了HTTPS协议:SSH密钥仅对SSH协议的远程仓库地址生效,HTTPS协议走的是账号密码或个人Token认证体系,和本地SSH配置无关,自然无法复用已配置的密钥。
- 少部分情况为本地SSH配置异常:如果
~/.ssh/config(Windows系统路径为C:\Users\你的用户名\.ssh\config)中绑定的GitHub主机配置有路径限制,或是私钥文件权限不符合要求(Linux/macOS下私钥权限需为600,.ssh目录权限需为700),也可能出现适配问题。 - 极低概率为账号匹配错误:若新仓库属于组织账号而非你的个人账号,或是公钥上传到了其他GitHub账号下,也会出现认证失败。
所需操作(无需重复完整配置流程,仅需做以下验证修改即可)
- 先检查新仓库的远程地址配置:在新仓库本地目录下执行
git remote -v,查看输出的origin地址前缀,若为https://github.com/开头,执行git remote set-url origin git@github.com:你的GitHub用户名/对应仓库名.git即可切换为SSH协议。 - 验证本地SSH配置有效性:任意目录下执行
ssh -T git@github.com,若输出包含Hi 你的用户名! You've successfully authenticated,说明密钥生成、公钥上传、可信主机配置均正常,不需要重新执行这部分步骤。 - 若上述操作完成后仍无法推送,检查本地SSH文件权限:Linux/macOS下执行
ls -al ~/.ssh确认私钥文件权限为-rw-------,config文件权限不高于644即可。
内容的提问来源于stack exchange,提问作者user5162426
相关产品推荐
相关产品推荐

