GitHub开启二次验证后会导致博客提交hexo deploy的时候密码错误,无法提交至GitHub。具体提示如下:
1 | Logon failed, use ctrl+c to cancel basic credential prompt. |
这是由于在GitHub中开启了 Two-factor authentication(二次验证)导致。
网上搜到的通常有两种解决办法,一种是关闭二次验证,还有一种是生成 Personal access tokens 令牌码,使用该码作为密码登录。这里我选择的是第二种方法,原因:
开启二次验证虽然在某些时候增加了一些麻烦,但是极大的提高了账户的安全性,我觉得这是值得的。
使用第二种方法之后,在后面的博客创作过程中如果再次用到hexo deploy命令则不需要再重复输入用户名和密码。
创建个人访问令牌:
如果github帐号尚未验证电子邮箱地址,则需要验证电子邮件地址。
登录github后,在任何页面的右上角单击个人资料照片,然后单击Settings(设置)
- 在左侧边栏中,单击Developer settings。
- 在左侧边栏中,单击 Personal access tokens(个人访问令牌)。
- 单击 Generate new token(生成新令牌)。
- 给令牌一个描述性名称。
- 选择要授予此令牌的作用域或权限。 要使用令牌从命令行访问仓库,请选择 repo(仓库)。
- 单击 Generate token(生成令牌)。
- 单击复制小按钮将令牌复制到剪贴板。 出于安全原因,离开此页面后,您将无法再次看到令牌。
警告: 像对待密码一样对待您的令牌,确保其机密性。 使用 API 时,应将令牌用作环境变量,而不是将其硬编码到程序中。
如果您有令牌,则可以在通过 HTTPS 执行 Git 操作时输入令牌,而不是密码。例如,在命令行中输入以下内容:
1 | $ git clone https://github.com/username/repo.git |
个人访问令牌只能用于 HTTPS Git 操作。 如果您的仓库使用 SSH 远程 URL,则需要将远程 URL 从 SSH 切换到 HTTPS。
如果没有提示您输入用户名和密码,说明您的凭据可能已缓存在计算机上。 您可以在密钥链中更新您的凭据,用令牌替换您的旧密码。
- 保存好生成的令牌码,该码即为使用hexo deploy后提示输入密码时使用的密码
关闭二次验证(不推荐):
- 登录github.com
- Settings->Account Security
- 在 Two-factor authentication 栏下点击Edit
- 点击 Disable two-factor authentication
关闭二次验证后,hexo部署提交时使用的密码即为GitHub网站用户密码。
参考:
http://fezl.me/2017/05/20/GitHub%E4%BA%8C%E6%AC%A1%E9%AA%8C%E8%AF%81%E5%B8%A6%E6%9D%A5%E7%9A%84%E9%97%AE%E9%A2%98/