使用多个SSH密钥切换Github账号时提示'repository not found'错误
问题原因
该问题和Personal Access Token(PAT)无关,PAT仅用于HTTPS协议的Git操作鉴权,你使用SSH协议完全不涉及该机制。
失效的核心原因是:你直接从GitHub复制的默认SSH地址为git@github.com:用户名/仓库名.git,默认匹配的是SSH配置中Host github.com的规则,而你没有配置该默认Host的密钥,只会按ssh-agent加载的密钥顺序尝试鉴权,工作账号正常是因为工作密钥刚好排在前面,个人密钥匹配失败就会报权限错误。
解决方法
你只需要把仓库SSH地址中的github.com替换为你自己配置的SSH Host别名即可:
新克隆个人仓库
直接修改克隆地址的前缀:
git clone git@personal:你的个人用户名/仓库名.git
已有个人仓库修改远程地址
进入仓库目录执行命令修改remote地址:
git remote set-url origin git@personal:你的个人用户名/仓库名.git
工作账号的操作同理,将前缀替换为git@work:即可匹配工作密钥。
验证步骤
- 先执行
ssh -T personal,如果返回Hi xxx! You've successfully authenticated...的提示,说明个人密钥鉴权正常,没有被GitHub删除或者失效。 - 进入仓库执行
git remote -v确认远程地址已经替换为带personal别名的格式,之后即可正常执行pull/push操作。
额外排查点
如果上述操作后仍报错,可以检查:
- 你的
id_rsa_personal.pub公钥是否正确添加到了GitHub个人账号的SSH密钥列表中 - 你要操作的个人仓库是否存在、你的账号是否有读写权限
内容的提问来源于stack exchange,提问作者Kaigo
相关产品推荐
相关产品推荐

