(ml_env) (base) lqsilicon@lqsilicon-MW50-SV0:~/Public/syh$ git clone git@github.com:open-compass/opencompass.git
Cloning into 'opencompass'...
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
遇到以上错误
1. 检查是否生成了 SSH 密钥
首先,检查您的计算机上是否已经有 SSH 密钥对。如果没有,您需要生成一个新的 SSH 密钥。
- 检查本地是否已有 SSH 密钥:
bash
复制代码
ls -al ~/.ssh
如果您看到类似于 id_rsa
和 id_rsa.pub
的文件,表示已经有 SSH 密钥。
2. 如果没有 SSH 密钥,生成一个新的密钥
如果您没有 SSH 密钥,可以使用以下命令生成一个新的 SSH 密钥对:
bash
复制代码
ssh-keygen -t ed25519 -C "your_email@example.com"
然后按照提示完成密钥的生成过程。
3. 将公钥添加到 GitHub
生成密钥后,您需要将公钥添加到 GitHub。
- 显示公钥内容:
bash
复制代码
cat ~/.ssh/id_ed25519.pub
复制输出的公钥内容。
- 登录到您的 GitHub 账户。
- 点击右上角的头像,选择 Settings。
- 在左侧菜单中选择 SSH and GPG keys。
- 点击 New SSH key,将复制的公钥粘贴到 Key 字段,给该密钥命名,并点击 Add SSH key。
4. 测试 SSH 连接
您可以使用以下命令来测试 GitHub 的 SSH 连接是否成功:
bash
复制代码
ssh -T git@github.com
如果连接成功,您应该看到类似以下的消息:
vbnet
复制代码
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
5. 尝试重新克隆仓库
现在,您应该能够成功克隆 GitHub 上的仓库:
bash
复制代码
git clone git@github.com:open-compass/opencompass.git
通过 HTTPS 和 SSH 克隆 GitHub 仓库的方式有以下区别:
1. 克隆方式的选择:
- HTTPS:
- 使用 GitHub 提供的 URL
https://github.com/username/repo.git
克隆仓库。 - 每次推送或拉取时,需要输入 GitHub 用户名和密码(或者生成并使用 GitHub 的 Personal Access Token)。
- 使用 GitHub 提供的 URL
- SSH:
- 使用 SSH URL
git@github.com:username/repo.git
克隆仓库。 - 通过 SSH 密钥进行身份验证,不需要每次输入用户名和密码。
- 使用 SSH URL
2. 优缺点对比:
特性 | HTTPS | SSH |
---|---|---|
身份验证 | 需要每次输入用户名和密码,或者使用 Personal Access Token(GitHub 推荐方式) | 使用 SSH 密钥进行认证,一旦设置好后无需重复输入凭证 |
安全性 | 密码需要通过网络传输,可能稍微不如 SSH 安全 | SSH 密钥认证更加安全,尤其是在公私钥配对的情况下 |
易用性 | 设置简单,只需用户名和密码/Token即可 | 需要配置 SSH 密钥,但配置一次后更方便 |
访问权限 | 适用于任何网络环境(可能需要提供 Token) | 需要支持 SSH 的环境,可能在某些受限网络下不可用 |
适用场景 | 如果你不想配置 SSH 密钥,使用 HTTPS 会更简单 | 如果你频繁与 Git 仓库交互,使用 SSH 更方便 |
3. 如何使用 HTTPS 克隆仓库:
使用 HTTPS 克隆仓库的命令如下:
bash
复制代码
git clone https://github.com/username/repo.git
当执行这条命令时,Git 会提示您输入 GitHub 用户名和密码。GitHub 自 2021 年 8 月 13 日开始,已经不再支持通过账户密码的方式进行身份验证,改为 Personal Access Token(PAT)。您可以在 GitHub 中创建并使用 PAT 作为密码。
创建 Personal Access Token:
- 登录 GitHub。
- 进入 Settings -> Developer settings -> Personal access tokens。
- 点击 Generate new token,设置 token 的权限(例如,选择
repo
权限来访问所有私有仓库)。 - 复制生成的 Token。
当 Git 提示输入密码时,粘贴 Personal Access Token 即可。
4. 如何使用 SSH 克隆仓库:
使用 SSH 克隆仓库的命令如下:
bash
复制代码
git clone git@github.com:username/repo.git
执行此命令时,Git 会使用您的 SSH 密钥进行身份验证。如果您已经在 GitHub 上设置了 SSH 密钥并且在本地配置了该密钥,那么就不需要每次输入密码。