1.首先,判断是否生成了密钥和公钥
1.打开Git Bash。
2.输入ls -al ~/.ssh
以查看是否存在现有 SSH 密钥。
3.检查目录列表以查看您是否已有公共 SSH 密钥。默认情况下,GitHub 支持的公钥的文件名是以下之一:id_rsa.pub、id_ecdsa.pub、id_ed25519.pub。
2.没有生成密钥,如果已有密钥请忽略这一步。或者你可以按此操作重新生成一个
如果您收到~/.ssh不存在的错误,则说明您在默认位置中没有现有的 SSH 密钥对,需要创建新的 SSH 密钥对,具体见下一节,这里先讨论有密钥对的情况。
1.打开Git Bash。
2.粘贴下面的文本,替换为您的 GitHub 电子邮件地址。
ssh-keygen -t ed25519 -C "your_email@example.com"
(这将使用提供的电子邮件作为标签创建一个新的 SSH 密钥。
注意:如果您使用的是不支持 Ed25519 算法的旧系统,请使用:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
)
3.在出现提示时,键入安全密码
> Enter passphrase (empty for no passphrase): [Type a passphrase]> Enter same passphrase again: [Type passphrase again]
3.将密钥加入ssh-agent
1.如果您看到列出了想要用来连接到 GitHub 的现有公钥和私钥对(例如id_rsa.pub和id_rsa ),则可以将该密钥添加到 ssh-agent。
2.将密钥添加到ssh-agent
$ eval "$(ssh-agent -s)"
3.将您的 SSH 私钥添加到 ssh-agent。如果您使用不同的名称创建了密钥,或者要添加具有不同名称的现有密钥,请将命令中的id_ed25519替换为您的私钥文件的名称。
ssh-add ~/.ssh/id_ed25519
(注:如果您使用的是 macOS 或 Linux,则可能需要在生成新的 SSH 密钥之前更新 SSH 客户端或安装新的 SSH 客户端。
将硬件安全密钥插入计算机。
打开Git Bash。
粘贴下面的文本,替换您在 GitHub 上帐户的电子邮件地址。
ssh-keygen -t ed25519-sk -C "YOUR_EMAIL"
如果命令失败并且您收到错误invalid format
,或者feature not supported,
您可能正在使用不支持 Ed25519 算法的硬件安全密钥。请输入以下命令。
ssh-keygen -t ecdsa-sk -C "your_email@example.com"
出现提示时,请触摸硬件安全密钥上的按钮。
当系统提示您“输入要保存密钥的文件”时,按 Enter 接受默认文件位置。
> Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ed25519_sk):[Press enter]
当系统提示您输入密码时,请按Enter。
> Enter passphrase (empty for no passphrase): [Type a passphrase]> Enter same passphrase again: [Type passphrase again]
)
4.将 SSH 公钥添加到您在 GitHub 上的帐户。
$ clip < ~/.ssh/id_ed25519.pub
(如果你的 SSH 公钥文件的名称与示例代码不同,请修改文件名以匹配您当前的设置。复制密钥时,请勿添加任何换行符或空格。 )
5.在任意页面的右上角,点击您的个人资料照片,然后点击“设置”。
6.在侧边栏的“访问”部分中,单击SSH 和 GPG 密钥。
7.单击新建 SSH 密钥或添加 SSH 密钥。
8.在“标题”字段中,为新密钥添加描述性标签。
9.选择密钥类型,身份验证或签名。
选择身份认证
10.在“密钥”字段中,粘贴您的公钥。
11.单击添加 SSH 密钥。
4.测试ssh连接
1.打开Git Bash。
2.输入以下内容:
$ ssh -T git@github.com
您可能会看到这样的警告:
> The authenticity of host 'github.com (IP ADDRESS)' can't be established.> ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.> Are you sure you want to continue connecting (yes/no)?
3.验证您看到的消息中的指纹是否与GitHub 的公钥指纹匹配。如果是,则输入yes
:
(公钥指纹在你将公钥加入github的时候会显示,如下图:
)
> Hi USERNAME! You've successfully authenticated, but GitHub does not> provide shell access.
出现此语句,说明成功 ,就可以上传代码了。