GitHub会通过SSH密钥来验证你的身份,确保你有权限克隆、推送或拉取代码。
对于公开仓库,你不需要额外的权限,只需确保SSH密钥已正确配置并可以通过GitHub验证。公开仓库允许任何人克隆,即使仓库属于他人,只要你通过SSH身份验证即可。
对于公开仓库的操作步骤总结:
- 生成并配置SSH密钥
- 将公钥添加到GitHub账户。
- 测试SSH连接确保可以与GitHub通信。
- 克隆仓库,即便是别人的公开仓库,
照以下步骤生成SSH密钥,并将公钥添加到GitHub账户中:
这个错误是由于SSH密钥未正确配置或未添加到GitHub账户中导致的。GitHub通过SSH进行身份验证时,需要确保本地机器的SSH公钥已经被添加到你的GitHub账户中。
你可以按照以下步骤进行操作:
1. 生成SSH密钥(如果还没有的话)
首先,检查是否已经有SSH密钥,使用以下命令:
bash
ls -al ~/.ssh
如果文件夹中有id_rsa.pub
或id_ed25519.pub
,说明已经有密钥;如果没有,生成新的SSH密钥:
1. 生成SSH密钥
运行以下命令生成SSH密钥:
bash
ssh-keygen -t ed25519 -C "your_email@example.com"
如果你使用的系统不支持ed25519
,可以使用RSA:
bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
生成密钥时,系统会提示你选择保存的位置,建议直接按回车键使用默认位置(~/.ssh/id_ed25519
或~/.ssh/id_rsa
),并可以选择是否设置密码。
2. 添加SSH密钥到ssh-agent
接下来,启动ssh-agent
并将生成的私钥添加到代理中:
bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
如果使用RSA密钥,命令为:
bash
ssh-add ~/.ssh/id_rsa
3. 将SSH公钥添加到GitHub
使用以下命令查看公钥内容:
bash
cat ~/.ssh/id_ed25519.pub
如果使用RSA密钥:
bash
cat ~/.ssh/id_rsa.pub
复制公钥内容。然后:
- 登录到你的GitHub账户。
- 前往 GitHub SSH keys settings 页面。
- 点击"New SSH key"。
- 将复制的公钥粘贴到文本框中,给密钥起个名字,然后保存。
4. 测试SSH连接
添加公钥后,你可以使用以下命令测试SSH连接是否成功:
bash
ssh -T git@github.com
如果配置正确,你会看到类似以下的信息:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
5. 重新克隆仓库
最后,使用SSH重新克隆仓库:
bash
git clone git@github.com:ShiqiYu/CPP.git
这样就可以解决"Permission denied (publickey)"问题,成功克隆别人的仓库。
如果你在操作过程中遇到问题,请告诉我!