使用Github SSH Key来避免Hexo部署时输入账户密码
刚搭建完成hexo+github的博客后,每一次要把本地的内容推到github上时都要输入github的账户密码,刚开始觉得设置起来可能很麻烦,想改github的密码,结果发现github上有密码长度复杂度要求,所以还是查找资料来设置GitHub ssh key,避免每次
hexo d
都要输入账户密码。
1. 在这里直接搬运我所用到的文章,先按照https://www.cnblogs.com/yaoel/p/5381826.html
进行以下操作 —(搬运下来以免原博客失效)。
修改_config.yml,将部署方式从https方式修改为ssh方式。
1 | # Deployment |
修改为
1 | # Deployment |
2. 然后参考另一篇文章 https://xuanwo.io/2015/02/07/generate-a-ssh-key/
下面内容为原博客搬运内容
列出已存在的SSH Key
打开Git Bash,并且输入:
1 | ls -al ~/.ssh |
这个命令会列出你.ssh
账户中已经存在的SSH key,如果之前没有设置过,一般都是没有。
生成密钥
然后输入: ssh-keygen -t rsa -C "your_email@example.com"
这个命令将会生成一个以your_email@example.com
为标签的ssh key,然后bash中会显示:
1 | Generating public/private rsa key pair. |
直接回车,然后出现:
1 | Enter passphrase (empty for no passphrase): [Type a passphrase] |
因为追求操作方便,我们不打算在deploy的时候输入这个passphrase
,所以直接回车两次设为空。然后你会看到:
1 | Your identification has been saved in ~/.ssh/id_rsa. |
加入SSH Agent
下一步输入:
1 | ssh-agent -s |
如果出现类似Agent pid XXXX
这样的字样,则跳过下一步,否则输入:
1 | eval `ssh-agent -s` |
直到出现Agent pid XXXX
这样的提示之后,输入:
1 | ssh-add ~/.ssh/id_rsa |
这样,你成功的在本地生成了一个可用的SSH key。
加入ssh agent 此步骤出现问题可先看第三项,第三项为补充此项可能出现的错误。
将SSH Key添加到Github中
下面将这个key添加到github网站。 打开https://github.com/settings/ssh,点击`Add SSH Key,复制
id_rsa.pub中的所有内容到
Key框中,在
Title`框中输入方便自己记忆的名字(建议输入能让自己明白是哪台电脑的名字,方便以后管理)。 当网页显示添加成功后,就已经完成了全部的操作。 下面进行一些测试,同样是打开Git Bash,输入:
1 | ssh -T git@github.com |
bash中会显示如下字样:
1 | The authenticity of host 'github.com (207.97.227.239)' can't be established. |
输入yes之后,计算机会自动将github.com
列入已知的host,然后会出现如下提示:
1 | Hi username! You've successfully authenticated, but GitHub does not |
如果成功看见,说明你已经配置好了,快去享受爽快的hexo一键部署吧
3. 此项为补充第二项中可能遇到的错误
https://blog.csdn.net/leedaning/article/details/49888335
我在进行加入SSH Agent
时使用ssh-add ~/.ssh/id_rsa
命令报错
Could not open a connection to your authentication agent.
这时候使用ssh-agent bash
命令,然后使用ssh-add ~/.ssh/id_rsa
命令就能成功执行。