解决无法clone别人仓库代码的问题
前提:
windows操作系统
下载git bash
问题阐述
在很多代码工程中,第一步就是使用git拉去别人的代码,比如说:
git clone git@github.com:Stability-AI/generative-models.git
结果第一步就出错了,
Cloning into 'generative-models'...
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])? y
Please type 'yes', 'no' or the 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.
一般情况下,大多数人只有收到到别人的仓库下载,然后解压,
接下来,我们彻底解决这个问题,使得配置好的git可以直接拉取别人的代码。
在git bash命令窗口中,使用
ls ~/.ssh
观察是否有id_ed25519,如果没有,运行一下命令生成新的SSH密钥,"xxx@xxx.com"为github注册的邮箱,
ssh-keygen -t ed25519 -C "xxx@xxx.com"
按Enter键接受默认文件路径和设置密码(如果不想设置密码,可以直接按Enter)
生成完成后,运行以下命令,将SSH代理添加到ssh-agent:
eval $(ssh-agent -s)
添加新生成的SSH密钥到ssh-agent:
ssh-add ~/.ssh/id_ed25519
这时已经生成了,通过以下命令进行查看:
cat ~/.ssh/id_ed25519.pub
如果出现
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 ssh密钥 邮箱
则表示成功了。接下来就是将这个添加到账户中了。
1 登录到你的GitHub帐户。
2 转到右上角的头像,点击下拉菜单,选择 “Settings”。
3 在左侧导航栏中,选择 “SSH and GPG keys”。
4 点击 “New SSH key” 按钮。
5 在 “Title” 输入框中,为密钥添加一个描述性的标题,然后在 “Key” 输入框中粘贴刚刚复制的SSH密钥内容。(注意提示,需要类似ssh-ed25519的开头 然后ssh密钥)
6 点击 “Add SSH key” 按钮。
这样,你的SSH密钥就会与GitHub帐户关联起来。再次尝试进行克隆操作
最后试一下开始的git命令
remote: Enumerating objects: 740, done.
remote: Counting objects: 100% (383/383), done.
remote: Compressing objects: 100% (145/145), done.
remote: Total 740 (delta 301), reused 238 (delta 238), pack-reused 357
Receiving objects: 100% (740/740), 22.31 MiB | 115.00 KiB/s, done.
Resolving deltas: 100% (377/377), done.