作者:下里巴人

来自南京审计大学

前言:

在学习了如何搭建博客有,我便逐渐有了为辩论队搭建网站的想法,但是我发现没有我想象中的那么简单,于是在翻阅了众多大佬的记录后,磕磕绊绊终于成功实现了这个想法,便在此记录一下,供大家参考,也方便我自己以后忘了来看(*^▽^*)

一、问题来源及解决方法(引)

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

二、解决过程

注:接下来建立在你已经完成了博客的部署,参见搭建博客,具体即已然完成至ssh链接之前的步骤

创建新密钥

首先 在终端中输入以下指令,进入SSH根目录下,来检查已有密钥

1
cd ~/.ssh/
在这个目录可以看到你现在有的密钥,紧接着,输入以下指令,来创建新的密钥:
1
ssh-keygen -t rsa -f  ~/.ssh/这里是新密钥名称 -C "这里是你的邮箱"

新密钥的名称不能重复,需要另设一个!

配置config文件

查看你的.ssh/根路径下, 有没有config文件,没有则在此目录中创建一个config文件(不需要任何后缀!!)

紧接着,用记事本或者直接用vscode打开这个文件,写入以下配置

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

按照从前的步骤,将新的sshkey添加至你的新Github账户,这里不再赘述

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

在终端中输入以下指令,执行操作

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

注:此操作终端应在ssh根目录下!

如果这时候出现如下错误:

1
Could not open a connection to your authentication agent.

这时你需要在终端输入,问题即可解决:

1
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 d 不需要输入,如果没有进行这一段操作,你的目录下不会出现下面要用到的. deploy_git 文件夹!!!接下来开始设置单独变量,这是需要进入博客文件.deploy_git文件夹中,设置隐藏文件可见(属性) .git,然后在其中的config文件中加入以下配置:

1
2
3
[user]
name = yannan
email = 781369549@qq.com

hexo 配置文件修改git地址

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

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

注:这里的配置与之前有些许不同,比如repo的写法,这样写的好处是可以避免部署失败的情况出现,其他别无二致。

三、小结

到此,问题就解决啦,完美的在电脑上同时部署了多个hexo博客,如果遇到别的报错,大家可以联系我,或者在网上搜寻一下报错的解决方法哦(*^▽^*)