0%

博客免密部署到GitHub的小操作

每次写完博客,提交、部署到GitHub上的时候,会要求输入账户名和密码,我们可以通过设置SSH密钥以实现免密部署,来提高生产效率。


原理

由于每次部署时GitHub都要确定用户是否为安全用户,所以要求输入账户名和密码。而SSH就保证了这样的安全。

SSH是一种网络协议,用于计算机之间的加密登录。一般生成的是id_rsaid_rsa.pub,一个私钥和一个公钥。

原理就是将公钥储存到远端主机,私钥储存在本地,登录时远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。


检查现有的SSH密钥

打开Git Bash。输入:

1
ls -al ~/.ssh

查看是否存在SSH密钥,若没有,则生成一个新的SSH密钥。


生成SSH密钥

1
ssh-keygen -t rsa -C "GitHub邮箱地址"

为了方便,回车三连。

根据文件的生成路径,找到.ssh文件夹,打开目录下的id_rsa.pub,复制里面的所有内容。


将SSH密钥添加到GitHub账户

右上角点击个人资料照片,点击Setting

在用户设置边栏找到SSH and GPG keys,点击New SSH key

Title字段可自行命名一个描述性标签,并在Key中粘贴刚刚所复制内容,点击点击Add SSH key


测试SSH密钥的连接

回到Git bash,输入:

1
ssh -T git@github.com

首次输入可能会看到警告,键入yes即可。

成功会返回验证消息:

1
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

修改站点配置文件_config.yml

1
2
3
4
5
deploy:
type: git
repo: git@github.com:xxxx/xxxx.github.io.git
#格式必须是上述格式
branch: master

这样SSH密钥便设置成功啦!


参考

生成SSH密钥