无法访问GitHub仓库:SSH公钥权限被拒问题求助
SSH密钥未匹配GitHub的问题排查与解决
问题原因
- Host规则匹配错误:你的配置中
Host *.github.com仅匹配带子域名的GitHub地址(如gist.github.com),直接连接git@github.com时不会触发该规则,SSH会使用默认全局配置,不会加载指定的自定义密钥。 - 配置参数大小写不一致:全局配置里是
UseKeychain yes(小写c),而GitHub段写的是IgnoreUnknown UseKeyChain(大写C),这会导致SSH解析配置时出现异常,忽略部分规则。 - SSH代理缓存旧密钥:SSH Agent可能已经缓存了之前用于Bitbucket的密钥,连接时会优先尝试缓存中的密钥,而非你指定的新密钥。
解决步骤
- 修正Host匹配规则:将配置中的
Host *.github.com修改为Host github.com,确保直接连接github.com时触发该规则:Host * UseKeychain yes Host github.com AddKeysToAgent yes IdentityFile ~/.ssh/eastonit_wordpress IgnoreUnknown UseKeychain - 重置SSH代理并加载新密钥:
- 清除代理中缓存的所有密钥:
ssh-add -D - 将自定义密钥添加到代理:
ssh-add ~/.ssh/eastonit_wordpress
- 清除代理中缓存的所有密钥:
- 验证配置生效:重新执行命令查看SSH连接过程,确认已加载指定密钥:
输出中如果出现ssh -Tv git@github.comdebug1: Offering public key: /Users/你的用户名/.ssh/eastonit_wordpress,说明配置已生效。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

