# 一台电脑使用两个/多个GitHub账号部署两个/多个Hexo博客

TRHX

2019-01-18

Hexo

字数统计:

1,481字

阅读时长≈

6分

由于个人原因需要在一台电脑上部署两个Hexo博客，本来以为挺简单，没想到问题重重，首先是一个GitHub账号只能搭建一个Hexo博客，因此就需要使用其他GitHub账号；其次是一台电脑绑定两个GitHub账号，则需要两对公钥，在处理第二个问题时遇到的问题比较多，因为对这方面一窍不通，还是小白，所以折腾了一下午才解决，网上好多教程我都看不懂，觉得不（自）够（己）详（太）细（笨），因此详细记录一下

原理分析：

> - SSH的公钥是GitHub作为本地仓库和远程仓库连接的唯一标识，一个公钥只能对应一个GitHub账户，如果将一个相同的公钥上传到不同的GitHub账户，GitHub则无法做出辨识，进而导致错误
> - 一台电脑，可以生成多对公私钥，可以通过配置，将不同的公钥上传到不同的GitHub账号，那么就不存在单个公钥绑定多个GitHub账号的情况存在了

相关问题报错：

> - 同一台电脑部署第二个Hexo博客执行`hexo g -d`时报错：`ERROR: Permission to xxxxxx/xxxxxx.github.io.git denied to xxxxxx.`
> - 添加新的 SSH 密钥 到 SSH agent 执行`ssh-add xxx`时报错：`Could not open a connection to your authentication agent.`
> - 单独设置用户名/邮箱时报错：`fatal: not in a git directory`

以下是详细过程：
前提：假设你的第二个博客相关配置操作已经顺利完成，但使用`hexo g -d`命令部署到 GitHub 上时报错：`ERROR: Permission to xxxxxx/xxxxxx.github.io.git denied to xxxxxx.`

# - 查看当前密钥

首先我们打开终端输入`ls ~/.ssh/`可以查看当前已有的密钥，显示`id_rsa` 与 `id_rsa_pub`说明已经有一对密钥

# - 创建新的密钥

首先使用以下命令进入 SSH根目录下：

    1
    cd ~/.ssh/

## 方法一

直接使用以下命令创建新密钥，然后两次回车即可：

    1
    ssh-keygen -t rsa -f  ~/.ssh/这里是新密钥名称 -C "这里是你的邮箱"

注意区别新密钥名称和旧密钥名称，不要相同！！！

## 方法二

使用下面命令行创建新密钥：

    1
    ssh-keygen -t rsa -C "这里是你的邮箱"

回车后会出现：

    1
    2
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/you/.ssh/id_rsa):

注意此时需要你输入新密钥的名称，同样要注意区别新密钥名称和旧密钥名称，不要相同！！！之后再两次回车，新密钥创建完毕！

# - 配置config

查看你的.ssh/根路径下, 有没有config文件,（ 比如我的路径为C:\Users\Lenovo.ssh）没有则使用以下命令创建一个config文件：

    1
    touch config

用记事本或者其他工具打开config文件（注意config文件是没有任何后缀名的），写入以下配置：

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #第一个账号，默认使用的账号，不用做任何更改
    Host github.com
    	HostName github.com
    	User git
    	IdentityFile ~/.ssh/id_rsa

    #第二个新账号，#"xxxxxx"为前缀名，可以任意设置，要记住，后面需要用到
    Host xxxxxx.github.com
    	HostName github.com
    	User git
    	IdentityFile ~/.ssh/这里是你创建的新密钥的名称

# - 设置新GitHub账户SSH key

输入以下命令复制你创建的公钥：

    1
    clip < ~/.ssh/这里是你创建的新密钥的名称.pub

也可以直接在.ssh目录下找到你创建的新的公钥，文件名为`新密钥的名称.pub`，（比如我的是`trhx_rsa.pub`），用记事本打开，复制里面的内容，然后打开你的新GitHub账号主页，依次进入Settings —> SSH and GPG keys —> New SSH key，将刚复制的内容粘贴到Key那里，Title可以随便填，点击Add Key保存。

# - 清空本地的 SSH 缓存，添加新的 SSH 密钥 到 SSH agent中

使用命令`cd ~/.ssh`cd到.ssh根目录下，依次执行以下命令：

    1
    2
    3
    ssh-add -D
    ssh-add xxxxxx #旧密钥名称，一般是id_rsa
    ssh-add xxxxxx #新创建的密钥名称

如果执行以上命令出现错误：`Could not open a connection to your authentication agent.`，那么就需要先执行`ssh-agent bash`，再执行以上命令

# - 验证配置是否成功

依次执行以下命令，第一个为默认ssh_key验证；第二个为新的ssh_key验证，其中“xxxxxx”为你先前在config文件中的命名

    1
    2
    ssh -T git@github.com
    ssh -T git@xxxxxxx.github.com

依次显示以下信息, 则说明配置成功：

    1
    Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.

# - 取消全局用户名/邮箱配置，单独设置用户名/邮箱

执行如下命令，取消全局用户名和邮箱配置（如果已经设置了全局的话）：

    1
    2
    git config --global --unset user.name
    git config --global --unset user.email

分别进入你的两个Hexo博客.git目录下执行以下命令单独设置用户名/邮箱：

    1
    2
    git config user.name "这里是用户名"
    git config user.email "这里是你的邮箱"

如果此时报错：`fatal: not in a git directory`，说明你没有进入.git目录下，具体路径：\Hexo\.deploy_git\.git，.git目录是隐藏的，需要你设置隐藏目录可见

执行以下命令可以查看设置是否成功

    1
    git config --list

# - hexo 配置文件修改git地址

打开你的第二个博客Hexo目录下的_config.yml文件，找到deploy关键字，写入以下配置并保存：

    1
    2
    3
    4
    deploy:
      type: git
      repository: git@xxxxxx.github.com:你的用户名/你的用户名.github.io.git
      branch: master

比如我的配置：

    1
    2
    3
    4
    deploy:
      type: git
      repository: git@love109.github.com:love109/love109.github.io.git
      branch: master

大功告成，再次执行hexo g -d就能成功将新的博客部署到 Github 上了

您的喜欢是作者写作最大的动力！❤️

- PayPal
- AliPay
- WeChatPay
- QQPay

Donate

最后更新于 2019年12月29日

Hexo

Github

###### 上一页

#### 新年快乐！

###### BLOG

###### 下一页

#### Python3 基础学习笔记 C09

###### 文件 异常

#### 评论

## ๑۩ﺴ TRHX ﺴ۩๑

本文目录
站内导航

- 所有文章
- 文章归档
- RSS订阅
- 我的友链
- 留言板
- 关于博主

欢迎光临
访客地图
交流群组

QQ 交流群 Telegram 交流群

文章分类

- BLOG
  (4)
- CDN
  (1)
- Hexo
  (9)
- Java
  (1)
- Linux
  (2)
- Markdown
  (2)
- Python3 学习笔记
  (39)
- 基础学习
  (9)
- 学习经验
  (4)
- 爬虫学习
  (18)
- 爬虫实战
  (8)
- VPS
  (1)
- WEB前端
  (2)
- 图床
  (1)

热门标签
12306 58同城 Ajax BLOG Beautiful Soup CDN Coding Pages Deepin Elicpse GitHub Pages Github Github Pages HTTPS Hexo ICP备案 JDBC JS 预加载 Markdown Material X MongoDB MySQL PEP8 PicGo Pygame Python Redis SEO SQL Server 2012 SSR Selenium Ubuntu User-Agent VMware VPS XPath if语句 input()函数 instant.page jsDelivr lxml pyspider requests spfk urllib while循环 主题个性化 代理 公安备案 函数 列表 变量 哔哩哔哩 图床 图形验证码 垃圾 备份 字典 安居客 年终总结 异常 技巧 操作列表 数据类型 文件 文件储存 无界面浏览器 模块 正则表达式 滑动验证码 点触验证码 爬虫 猫眼电影 瓜子二手车 类 继承 编辑器 虎扑论坛 豆瓣电影
最近在听