Cloning into 'vue-bi-she'... [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-06-19 14:55:01 浏览: 15
### 解决 Git 克隆仓库时权限被拒绝的问题
当使用 SSH 协议克隆 Git 仓库时,如果出现 `Permission denied (publickey)` 的错误,通常是因为 SSH 密钥配置不正确或未正确匹配到目标服务器。以下是解决此问题的完整方法:
---
#### 1. 确认 SSH 密钥生成和添加是否正确
确保已经为 Gitee 和 GitHub 分别生成了不同的 SSH 密钥,并将公钥正确添加到对应的账户中[^3]。
生成新的 SSH 密钥命令如下:
```bash
ssh-keygen -t rsa -C "你的邮箱" -f ~/.ssh/id_rsa_gitee
ssh-keygen -t rsa -C "你的邮箱" -f ~/.ssh/id_rsa_github
```
将生成的公钥内容复制并添加到 Gitee 和 GitHub 的账户设置中:
```bash
cat ~/.ssh/id_rsa_gitee.pub
cat ~/.ssh/id_rsa_github.pub
```
---
#### 2. 配置 SSH 客户端以区分不同主机
通过创建或编辑 `~/.ssh/config` 文件,明确指定每个主机(如 Gitee 和 GitHub)对应的私钥位置[^4]。
示例配置文件内容如下:
```plaintext
# Gitee 配置
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
# GitHub 配置
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
```
---
#### 3. 测试 SSH 连接是否正常
在完成上述配置后,测试与 Gitee 和 GitHub 的连接是否成功:
```bash
ssh -T [email protected]
ssh -T [email protected]
```
如果仍然提示 `Permission denied (publickey)`,可能是以下原因之一:
- 私钥路径配置错误,需确保 `IdentityFile` 使用绝对路径[^3]。
- 公钥未正确添加到远程服务的账户设置中。
---
#### 4. 检查本地 SSH Agent 是否加载正确的密钥
确保本地 SSH Agent 已加载所有需要的私钥。可以手动添加密钥到 SSH Agent 中:
```bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_gitee
ssh-add ~/.ssh/id_rsa_github
```
---
#### 5. 确保仓库地址使用正确的主机名
在克隆仓库时,确保使用的仓库地址与 `~/.ssh/config` 文件中的主机名一致。例如:
```bash
git clone [email protected]:用户名/仓库名.git
git clone [email protected]:用户名/仓库名.git
```
如果直接使用 `https` 方式克隆,则不会触发 SSH 密钥验证,因此不会出现权限问题[^2]。
---
#### 6. 处理首次克隆时要求输入用户名和密码的情况
即使配置了 SSH 密钥,某些情况下第一次克隆可能会要求输入用户名和密码。这是由于缓存机制导致的,只需输入一次后即可正常拉取代码[^3]。
---
### 注意事项
- 如果仅使用单一 SSH 密钥,则无需配置多个 `IdentityFile`,只需确保该密钥已正确添加到所有远程服务中。
- 在 Windows 系统中,路径格式可能略有不同,需注意使用反斜杠 `\` 或双斜杠 `\\` 表示路径[^3]。
---
阅读全文
相关推荐














