hexo deploy一键部署免每次输入github账号密码

作者:hgt 于2021-06-03创建
总字数 847     阅读预计需要 3 分钟
本文章被访问 本站总访问量

hexo deploy一键部署免每次输入github账号密码

hexo deploy一键部署,将源码部署到GitHub的时候,由于安全鉴定的问题,每次都需要输入github账号密码,即使本地创建了ssh-keygen,也是需要输入。那么针对这个问题该如何解决呢,现在就跟着我一起来解决这个问题

重新生成ssh-keygen

为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。 首先,你需要确认自己是否已经拥有密钥。 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh (用户私人目录)目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥:

1
2
3
4
$ cd ~/.ssh
$ ls
authorized_keys2 id_dsa known_hosts
config id_dsa.pub

寻找一对以 id_dsa 或 id_rsa 命名的文件,其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是与之对应的私钥。 如果找不到这样的文件(或者根本没有 .ssh 目录),你可以通过运行 ssh-keygen 程序来创建它们。 在 Linux/macOS 系统中,ssh-keygen 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中。

1
2
3
4
# -t 表示加密方式,非对称性加密 
# -b 加密强度,应该大于2048,可以省略
# -C 邮箱
ssh-keygen -t rsa -b 2048 -C 'github注册邮箱'

注意:在上述的操作过程中有输入密码的步骤,如果这里输入了密码以后每次使用这个密钥进行认证时都要输入密码,因此这里不需要输入密码。

GitHub添加公共密钥

将上一步提醒的公钥文件,后缀为.pub 的内容粘贴到下图的 key处即可
GitHub设置ssh密钥

设置hexo项目的GitHub地址

在hexo项目的根目录下如果存在deploy_git文件夹,这时有两个处理case。如果从未部署过则可忽略该步骤。

代号 case说明 操作方法
1 曾经已经部署过,并且很在意曾经提交的版本 通过命令清除远程仓库的地址git remote rm origin
2 曾经未提交过或者不在乎曾经提交的版本 删除文件夹.deploy_git(后续部署会自动创建)

case 1 说明

如果选择case 1 ,清除.deploy_git的远程仓库地址的方式,则使用一下命令

1
2
3
4
5
6
7
8
cd blog/.deploy_git
git remote rm origin
git remote set-url origin git@github.com:you_name/you_project.git


git remote -v # 查看当前传输协议
origin git@github.com:you_name/you_project.git (fetch)
origin git@github.com:you_name/you_project.io.git (push)

以上命令注意替换、注意替换、注意替换(心都操碎了)。

case 2 说明

如果并不在乎曾经提交的版本,则直接删除该文件夹即可。

编辑hexo配置文件

在做好了上述的准备后,就需要对hexo的配置文件(_config.yml)进行修改

1
2
3
4
deploy:
- type: git
repo: git@github.com:you_name/you_project.git
branch: master

这里着重的看下配置项 repo,这里的地址并不是GitHub的git地址,而是ssh地址,因此需要按照此处的规则进行限制

这里需要录入的GitHub地址即是下面位置的地址,可以自己拼接,也可以去复制粘贴
ssh复制出处


如果你喜欢这个博客或者觉得它对你有用,欢迎你转发、分享这个博客,让更多的人参与进来。 如果博客中使用的图片侵犯了您的版权,请联系作者删除。 谢谢 !