远程服务器无法访问GitHub出现公钥认证错误该如何解决?
GitHub CLI认证成功仅代表gh工具本身获得了访问权限,系统原生Git的SSH认证是独立流程,出现该报错可按以下步骤排查解决:
问题排查与解决步骤
- 第一步:验证SSH链路连通性
执行以下命令测试和GitHub的SSH认证是否正常:
如果返回ssh -T git@github.comHi [你的GitHub用户名]! You've successfully authenticated, but GitHub does not provide shell access.说明SSH链路本身正常,否则按下面的步骤逐一排查。 - 第二步:修正SSH密钥文件权限
Linux系统下SSH对密钥文件权限有严格要求,权限过高会触发安全机制直接拒绝读取:chmod 700 ~/.ssh chmod 600 ~/.ssh/id_ed25519 chmod 644 ~/.ssh/id_ed25519.pub - 第三步:加载私钥到SSH代理
如果当前会话没有加载对应的私钥,SSH检索不到认证凭证就会报错:# 启动ssh-agent(如果未运行) eval "$(ssh-agent -s)" # 加载对应私钥到代理 ssh-add ~/.ssh/id_ed25519 - 第四步:配置SSH规则避免密钥匹配错误
编辑~/.ssh/config文件,添加GitHub专属配置,明确指定认证用的密钥,避免SSH默认检索其他密钥导致匹配失败:Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes - 第五步:核对克隆地址格式
确认你使用的是SSH格式的克隆地址,而非HTTPS地址:
正确格式示例:git@github.com:你的用户名/仓库名.git
执行完以上步骤后重新执行克隆操作即可解决问题。
内容的提问来源于stack exchange,提问作者Indrajeet Haldar
相关产品推荐
相关产品推荐

