$ git push origin main [email protected]: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
时间: 2025-04-27 19:29:35 浏览: 32
### Git 推送时权限被拒绝 (publickey) 的解决方案
当遇到 `Permission denied (publickey)` 错误时,这通常意味着 SSH 密钥验证失败。即使已生成 `.ssh` 文件并上传了公钥,仍可能出现此错误。以下是几种可能的原因及对应的解决方法:
#### 1. 验证 SSH Agent 是否启动
SSH agent 是管理私钥的工具,确保其正在运行并且加载了正确的密钥。
```bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
```
上述命令会启动一个新的 SSH agent 实例,并将指定的私钥添加到该实例中[^2]。
#### 2. 检查本地配置文件中的 URL 格式
有时仓库地址格式不正确也会引发此类问题。确认远程库的 URL 使用的是 SSH 而不是 HTTPS 方式。
可以通过以下命令查看当前设置:
```bash
git config --get remote.origin.url
```
如果是 HTTPS 形式的链接,则需更改为 SSH 格式:
```bash
git remote set-url origin [email protected]:<用户名>/<项目名>.git
```
#### 3. 确认 GitHub 上关联的 SSH Key 正确无误
前往 GitHub 设置页面检查是否确实存在匹配的 SSH key 记录。注意区分不同设备上的多把钥匙情况,防止混淆使用。
另外,在某些情况下,GitHub 可能会对新连接发出警告提示,如指纹校验等操作,请按照屏幕指示完成相应步骤后再尝试推送上一次未成功的提交记录[^3]。
#### 4. 测试 SSH 连接状态
为了进一步排查具体原因,可以直接通过终端测试与目标服务器之间的 SSH 连通状况。
```bash
ssh -T [email protected]
```
正常情况下应该返回一条欢迎消息;如果有任何异常则说明还需要调整 SSH 客户端或者服务端的相关参数设定。
---
阅读全文
相关推荐
















