查看git上Connecting to GitHub with SSH的文档后,解决方案如下:
检查 SSH keys
打开终端
输入 ls ~/.ssh
来查看 SSH keys 是否存在.
$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist
查看文件夹,是否你已经拥有一个 public SSH key. 通常GitHub支持的key会是以下文件之一
id_rsa.pub
id_ecdsa.pub
id_ed25519.pub
Tips: 如果你收到一个错误信息说 "~/.ssh" 目录不存在,那说明你没有匹配的 SSH key 在默认位置。下一步操作会建议并告诉你如何生成一个新的 SSH key。
生成 SSH key
关于 SSH key 的使用和生成建议。主要有两种选择:
如果你没有可用的 SSH 密钥对,或者不想使用现有的密钥,建议生成一个新的 SSH 密钥对。 如果你看到已经有一个可用的公钥和私钥对(例如 id_rsa.pub 和 id_rsa),你可以把这个密钥添加到 ssh-agent 中,然后使用它连接到 GitHub。
打开 Git Bash 终端
使用 ssh-keygen 命令生成密钥,其中邮箱改为你自己的
ssh-keygen -t ed25519 -C "your_email@example.com"
Note: 如果你使用旧系统不支持 Ed25519 算法, 那么使用:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
当系统提示你 "Enter file in which to save the key
" 按回车接受默认的密钥保存路径
设置一个安全的密钥密码
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
直接回车表示不设置密码
将你的 SSH key 添加到 ssh-agent
在向 ssh-agent 添加一个新的 SSH key 之前,你需要检查是否已有现成的 SSH key,如无可用 key,生成一个新的 SSH key。
如果有 GitHub Desktop,也可以使用它避免手动管理 SSH key
打开一个管理员权限的 PowerShell 或 CMD 窗口,确保 ssh-agent 服务运行
# start the ssh-agent in the background
Get-Service -Name ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agent
在普通命令行窗口中,使用 ssh-add 命令,添加私钥文件
ssh-add /c/Users/YOU/.ssh/id_ed25519
在 GitHub 帐号设置中,添加对应的公钥内容
为你 GitHub 账户添加一个新的 SSH key
复制 SSH public key 内容,直接从 .pub 文件中读取
$ clip
Notes: windows系统,右键
id_rsa.pub
文件,使用记事本打开后复制里面的public key
在 GitHub 网站右上角个人头像-Settings 页面
选择 SSH and GPG keys 项
点击 New SSH key 按钮添加
为此密钥添加一个描述标签
选择此密钥的用途,一般选 authentication
在 Key 字段粘贴刚才复制的公钥内容
点击 Add SSH key 按钮完成添加
如需确认身份验证才能成功添加
停留在世界边缘,与之惜别