把 Hexo 静态网页上传到 GitHub 上需要用到。新手可以完全按照下面步骤进行。

检查是否之前有生成 SSH key

在生成 SSH 密钥之前,您可以检查是否有任何现有的SSH密钥。所以开发终端,在终端查询:

1
2
ls -al ~/.ssh
# 列出.ssh目录中的文件(如果存在的话)

检查目录列表以查看是否已拥有公共 SSH 密钥。如果没有生成,会提示:No such file or directory。如果已经存在,会显示 id_rsa 和 id_rsa.pub。

生成 SSH key

输入下面的命令,记得替换 GitHub 电子邮件地址。

1
2
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# "your_email@example.com"为示例邮箱,此处应填写为你在 GitHub 上注册的邮箱。

这将使用提供的电子邮件作为标签创建一个新的ssh密钥。

1
Generating public/private rsa key pair.

当系统提示您“输入要保存密钥的文件”时,按 Enter 键使用默认文件位置。

1
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

在提示符下,键入安全密码。可以连续Enter,不设置密码。

1
2
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

成功后,终端显示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Your identification has been saved in /Users/huanglong/.ssh/id_rsa.
Your public key has been saved in /Users/huanglong/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:loN81ZNOrs huangdalu@yeah.net
The key's randomart image is:
+---[RSA 4096]----+
| .. |
| ... . |
| .. .o + |
|.o ++ B . |
|o.o+=.o S |
|.oo++*.o |
|oo=.+.+.. |
|=+.+o..E |
|o*+ o*+.o |
+----[SHA256]-----+

将SSH密钥添加到ssh-agent

在后台启动 ssh-agent

1
2
eval "$(ssh-agent -s)"
> Agent pid 59566

在终端输入命令:

1
ssh-add -K ~/.ssh/id_rsa

如果设置密码,此时会要求输入 passphrase,输入上面设置的密码就行。

添加 SSH key 到 GitHub

点击 GitHub 个人资料的设置操作。侧边栏找到导航“SSH and GPG keys”
image.png

单击“ New SSH key”
image.png

在“Title”字段中添加描述性标签,Key 字段中粘贴复制的 id_rsa.pub 内容。最后点击“Add SSH key”。最后 GitHub 需要弹窗确认密码就行。

如何检测SSH key

在终端输入命令:

1
ssh git@github.com

会出现如下提示:

1
2
3
The authenticity of host ‘github.com (13.250.177.223)’ can’t be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes

验证 SSH key 是否有权限访问 你的 GitHub,输入“yes”,成功会显示以下信息:

1
Hi you name! You’ve successfully authenticated, but GitHub does not provide shell access.