Git设置 ssh key 部署 hexo 博客到Coding

使用ssh key 可以免除每次部署都需要出入密码问题,coding和github功能上基本上是一样的,但是当前github的pages服务和谐了百度,所有在使用Hexo的时候github和coding可以配合使用

注意以下的操作是在window下完成。使用的是 git-bash ,如果在Linux或者Mac系统下,可以直接使用中端命令进行操作。

配置Git ssh key

使用git-bash

在安装Git时候自动安装git-bash,路径为 安装目录/git-bash.exe 。直接打开运行使用。

查看已经存在的ssh key

在git-bash中输入以下的命令:

1
$ ls -al ~/.ssh

~ 在window下对应用户目录,一般为C:\Users\gang\xxx

输入以上的命令,如果已经存在ssh key,会显示出来,否则结果为空。

1
2
-rw-r--r-- 1 gang 197121 1679 9月  23 12:16 id_rsa
-rw-r--r-- 1 gang 197121 403 9月 23 12:16 id_rsa.pub

以上的结果显示,存在一个key 名字为 id_rsa, 其中 id_rsa.pub 为公钥。

创建密钥

第一步 输入以下的命令创建密钥

1
$ ssh-keygen -t rsa -C "your_email0@example.com"

命令中的邮件改成自己的邮件名称。

第二步 设置文件的名称
输入上述的命令显示以下结果

1
2
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/gang/.ssh/id_rsa):

可以直接回车使用默认的文件名称,默认的文件名称为id_rsa, 会生成 id_rsa 和 id_rsa.pub 一对密钥文件,因为我已经有默认的密钥文件,所有使用一个新的文件名称,避免文件被覆盖掉。

输入 /c/Users/gang/.ssh/coding 回车(文件名称为coding,/c/Users/gang/.ssh为存放的路径)。

第三步 设置passphrase
输入上述的命名显示以下的结果

1
Enter passphrase (empty for no passphrase):

为了使用方便,避免 deploy 的时候输入这个 passphrase ,所以直接回车两次设为空。显示以下的结果,标示密钥已经创建成功。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Your identification has been saved in /c/Users/gang/.ssh/coding.
Your public key has been saved in /c/Users/gang/.ssh/coding.pub.
The key fingerprint is:
SHA256:idbNzGSAOk/NJsLrTRIQ81dj+yUv/93c/1oUx+IRM5k your_email0@example.com
The key's randomart image is:
+---[RSA 2048]----+
| o. .= +o |
| .o .o + E= |
| o...o. + . o.o|
| *.oo+X + . oo|
| BooS B . . .|
| o.o o . |
| . + . .|
| . . . +o|
| o.X|
+----[SHA256]-----+

加入到SSH Agent

第一步 输入以下的命令

1
$ ssh-agent -s

如果出现类似 Agent pid XXXX 这样的字样,则跳过,否则输入

1
eval `ssh‐agent ‐s`

第二步输入以下命令

1
$ ssh-add ~/.ssh/coding

显示如下的结果

1
Identity added: /c/Users/gang/.ssh/coding (/c/Users/gang/.ssh/coding)

以上的操作就完成了ssh key的生成。
如果执行 ssh-add 命令出现了Could not open a connection to your authentication agent错误,则先执行ssh-agent bash 命令。

在Coding中加入公钥

在 coding的项目 部署公钥中填写生成的coding.pub 文件中的内容。

执行测试

输入以下命令:

1
$ ssh -T git@git.coding.net

如果出现以下的信息,表示已经配置成功。

1
2
Coding 提示: Hello italking, You've connected to Coding.net via SSH. This is a deploy key.
italking,你好,你已经通过 SSH 协议认证 Coding.net 服务,这是一个部署公钥

Hexo 发布到 coding

配置 _config.yml 文件

1
2
3
deploy:
type: git
repo: git@git.coding.net:xxxx/xxx.git

执行 Hexo d 发布命令就可以部署到 coding中了。