git permission denied (publickey).
时间: 2025-06-22 17:50:45 浏览: 14
### 解决 Git Public Key 被拒绝的问题
当遇到 `Permission denied (publickey)` 错误时,通常是因为 SSH 密钥配置不正确或者未被识别。以下是可能的原因以及解决方案:
#### 1. **SSH密钥未正确加载**
如果创建了自定义名称的 SSH 密钥(如 `xxx.github`),而不是默认的 `id_rsa` 和 `id_rsa.pub` 文件,则需要手动指定该密钥给 SSH 客户端[^1]。
可以通过编辑或创建 `~/.ssh/config` 文件来实现这一点。例如:
```bash
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/xxx.github
```
这样可以确保每次访问 GitHub 时都使用正确的私钥文件。
---
#### 2. **SSH Agent 中未添加私钥**
即使已经生成并上传了公钥到远程仓库,但如果本地未将私钥添加到 SSH agent 中,仍然会出现此问题。可以通过以下命令启动 SSH agent 并添加私钥[^5]:
```bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/xxx.github
```
注意:这里的路径应替换为你实际使用的私钥文件名。
---
#### 3. **测试 SSH 连接**
为了验证是否成功连接到远程服务器,可运行以下命令进行测试:
```bash
ssh -T [email protected]
```
如果没有返回类似 “Hi username! You've successfully authenticated...” 的消息,则说明仍有问题存在[^2]。
---
#### 4. **Windows 用户特定注意事项**
对于 Windows 系统上的用户,可能会因为环境变量 `SSH_AUTH_SOCK` 设置不当而导致无法正常工作。此时建议重启计算机后再尝试上述操作;另外也可以通过安装最新版本的 Git Bash 来获得更好的兼容性和支持[^3]。
此外,在某些情况下还需要确认 `.ssh` 目录下的权限设置是否恰当——即只有当前用户能够读写这些敏感数据文件。
---
#### 5. **重新生成新的 SSH Keys 对**
如果以上方法均无效,考虑删除旧有的钥匙对,并按照官方指南重新生成一对全新的 SSH keys 。具体步骤如下所示 [^4]:
- 执行下面这条指令以建立一个新的 RSA 类型 key :
```bash
ssh-keygen -t rsa -b 4096 -C "[email protected]"
```
- 将新产生的 id_rsa.pub 内容提交至目标平台(比如 Gerrit 或者 Github )中的相应位置.
最后再次执行上面提到过的那些检测手段, 应该就能顺利解决问题啦!
---
### 总结
综上所述,解决 `Permission denied (publickey)` 主要涉及以下几个方面:确保 SSH 密钥已正确定义、将其加入到 SSH-Agent 当前会话当中去、适当调整主机映射关系以便匹配非标准命名模式等等。希望这些建议可以帮助您快速定位并修复所面临的技术难题!
阅读全文
相关推荐


















