使用SSH密钥推送GitHub远程仓库失败的问题排查求助
嘿,这个问题我之前也碰到过!核心原因很明确:你当前SSH连接认证的是KernelWhisper账号,但你要操作的OrgMode仓库属于AlphaAlgorithms账号,所以GitHub会判定你没有权限访问这个私有仓库。
先执行这个命令确认当前SSH认证的账号,验证我的判断:
ssh -T git@github.com
输出应该会显示Hi KernelWhisper! You've successfully authenticated...——这就坐实了问题:你用的是旧账号的密钥在连接GitHub。
下面给你两种可行的解决办法:
方法一:为AlphaAlgorithms配置专属的SSH规则(推荐,一劳永逸)
(如果还没为AlphaAlgorithms生成独立密钥的话)生成新密钥:
ssh-keygen -t rsa -C "igabriel_improve@live.com"执行时会提示保存路径,默认是
~/.ssh/id_rsa,建议改成~/.ssh/id_rsa_alpha,避免和旧密钥冲突。将新密钥添加到SSH代理:
ssh-add ~/.ssh/id_rsa_alpha配置SSH规则,让访问这个仓库时自动用新密钥:
创建或编辑~/.ssh/config文件,添加以下内容:Host github-alpha HostName github.com User git IdentityFile ~/.ssh/id_rsa_alpha修改仓库的远程地址为配置的Host:
git remote set-url origin github-alpha:AlphaAlgorithms/OrgMode.git现在再测试推送,应该就能成功了:
git push
方法二:临时指定密钥推送(适合偶尔操作)
如果不想改SSH配置,可以直接在推送命令里指定要用的AlphaAlgorithms密钥:
GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_alpha" git push
额外检查点
- 务必确保你生成的
id_rsa_alpha.pub内容已经添加到AlphaAlgorithms账号的GitHub SSH密钥列表里(路径:GitHub账号设置 → SSH and GPG keys → New SSH key)。 - 如果之前的旧密钥还在SSH代理里,可能会优先被使用,可以先清空代理再添加新密钥:
然后再用ssh-add -D ssh-add ~/.ssh/id_rsa_alphassh -T git@github.com验证,应该显示Hi AlphaAlgorithms! You've successfully authenticated...。
这样操作后,就能用AlphaAlgorithms的身份访问对应的私有仓库啦!
内容的提问来源于stack exchange,提问作者Wizard




