用 hexo 发布博客到 Github 时,遇到了如下的错误

1
2
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/xxxx/xxxx.github.io.git/'

起因是 Github 已经不支持采用用户名、密码的方式从第三方应用中进行认证。 解决办法使用 “Personal access token”。

登录你的 Github 账号,在右上角头像图标的下拉菜单中选择”Settings”, 再在左边的类别中选择 “Developer settings”。就可以看到 “Personal access tokens”。按”Generate new token”按钮选择生成一个新的token, 选择相关的权限。 用 hexo 进行发布博客,只需要选择”public_repo, repo:status, repo_deployment”这几项权限即可。生成后记得复制github生成的token, 完成后的状态如下图:

完成上述操作后,打开博客项目中的 _config.yml 文件,找到”deploy”配置项,改为如下的格式

1
2
3
4
5
deploy:
type: git
repo: https://oauth2:<your personal access token>@github.com/xxxx/xxxx.github.io.git
branch: master
token: <your personal access token>

用你真实的账号替换“xxxx”, 用上面在github中生成的 token 替换”“。

保存后再执行 hexo -d 就可以完成发布了。