有时git clone 某个代码总会出现
git clone git@github.com:XXXXXXXX
随后报出错误
Warning: Permanently added 'github.com' (ECDSA) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: 无法读取远程仓库。
请确认您有正确的访问权限并且仓库存在。
没有权限的原因是git clone git@github.com:XXXXXXXX的都需要github的ssh
生成新 SSH 密钥
打开终端粘贴以下文本,
your_email@example.com替换为你的 GitHub 账号 电子邮件地址。
ssh-keygen -t ed25519 -C "your_email@example.com"
终端会出现
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/leefan-subt/.ssh/id_ed25519):
直接回车,就行
表示接受默认文件位置
然后出现以下内容
Enter passphrase (empty for no passphrase):
这是设置SSH的密码
会提示输入第二次确认密码
然后出现
Enter same passphrase again:
Your identification has been saved in /home/leefan-subt/.ssh/id_ed25519.
Your public key has been saved in /home/leefan-subt/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:5qrkrywz547fQiOnOmLbNJ07riMO12XRO0wltArUsyg XXXXXX@qq.com
The key's randomart image is:
+--[ED25519 256]--+
| .. .o . |
| . o. + |
| ...o+ |
| E ...= . |
| . + S |
| ..=o.o . |
|. .Bo+ . |
|++B*+o.. |
|==+@%B= |
+----[SHA256]-----+
表示设置SSH成功
将 SSH 密钥添加到 ssh-agent
输入下面的命令会出现Agent pid XXXXXX
eval "$(ssh-agent -s)"
#Agent pid XXXXXX xxxxx是一串数字ID
输入下面命令
ssh-add ~/.ssh/id_ed25519
现实
Enter passphrase for /XXXX/.ssh/id_ed25519:
#这里输入密码回车
就出现下面的
Identity added: /home/leefan-subt/.ssh/id_ed25519 (XXXXXXXX@qq.com)
输入以下命令
ls -al ~/.ssh
会出现下面的
#总用量 24
#drwx------ 2 lXXXXX XXXX 4096 4月 9 14:47 .
#drwxr-xr-x 20 lXXXXX XXXX 4096 4月 9 14:31 ..
#-rw-rw-r-- 1 lXXXXX XXXX 52 4月 9 14:29 config
#-rw------- 1 lXXXXX XXXX 464 4月 9 14:47 id_ed25519
#-rw-r--r-- 1 lXXXXXXXXXX 98 4月 9 14:47 id_ed25519.pub
#-rw-r--r-- 1 lXXXXX XXXX 222 4月 9 14:32 known_hosts
这里面有以下结尾的就算本机SSH设置成功
id_ed25519.pub
新增 SSH 密钥到 GitHub 帐户
输入下面命令
cat ~/.ssh/id_ed25519.pub
会出现密钥
#ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAkr/YlE4vkRYzbsX8yerpC/GT6FnCHv8IPFeZ1enMfe XXXXX@qq.com
是以设置的github账号结尾
然后登陆github官网,点击右上方头像,再点击Setting
再点击SSH and GPG keys
再点击 NEW SSH KEY
把密钥填写进取,自己命名这台电脑的SSH就完成了