同一Git用户多台客户端主机使用时报公钥权限被拒绝如何解决
Git同账号多机器公钥权限问题解决方案
核心误区澄清
git config 配置的是提交时的用户身份标识(user.name、user.email),仅作用于提交记录的作者信息,和Git远程仓库的SSH公钥鉴权逻辑完全无关。仅做git config配置无法解决公钥权限报错,是因为遗漏了SSH密钥层的相关配置。
遗漏配置排查步骤
- 远程账户未添加办公机公钥
同个Git服务账号支持同时绑定多个SSH公钥,办公机鉴权失败多是因为家庭PC配置新密钥后,办公机原本的公钥被误删,或者从未上传过办公机的公钥到远程账户。
首先在办公机执行命令导出公钥内容:cat ~/.ssh/id_rsa.pub(如果是自定义密钥名称,替换为对应的.pub文件路径),将输出的完整公钥内容粘贴到远程Git账户的SSH密钥列表中保存即可,不需要修改家庭端的任何配置,两端公钥可共存使用。 - 办公机SSH密钥权限或路径配置错误
SSH服务对密钥文件的权限有严格要求,权限过高会直接拒绝鉴权,执行以下命令修正密钥权限:
如果你本地为Git服务设置了自定义的SSH密钥名称,需要在chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub~/.ssh/config文件中添加对应配置,示例如下:Host 你的Git服务域名(比如github.com)
HostName 你的Git服务域名
User git
IdentityFile ~/.ssh/自定义私钥文件名 - 远程仓库地址协议不匹配
若办公机之前使用HTTPS协议拉取仓库,切换SSH鉴权后未更新远程地址,也会触发权限报错。执行git remote -v查看当前仓库的远程地址,确认地址为git@开头的SSH协议格式即可,如有错误可执行git remote set-url origin 新的SSH仓库地址修正。
内容的提问来源于stack exchange,提问作者J Harri
相关产品推荐
相关产品推荐

