一台电脑部署两个或多个 Hexo 博客(一台电脑使用两个或多个 GitHub 账号)
由于個(gè)人原因需要在一臺(tái)電腦上部署兩個(gè)Hexo博客,本來以為挺簡單,沒想到問題重重,首先是一個(gè)GitHub賬號只能搭建一個(gè)Hexo博客,因此就需要使用其他GitHub賬號;其次是一臺(tái)電腦綁定兩個(gè)GitHub賬號,則需要兩對公鑰,在處理第二個(gè)問題時(shí)遇到的問題比較多,因?yàn)閷@方面一竅不通,還是小白,所以折騰了一下午才解決,網(wǎng)上好多教程我都看不懂,覺得不(自)夠(己)詳(太)細(xì)(笨),因此詳細(xì)記錄一下
原理分析:
- SSH的公鑰是GitHub作為本地倉庫和遠(yuǎn)程倉庫連接的唯一標(biāo)識(shí),一個(gè)公鑰只能對應(yīng)一個(gè)GitHub賬戶,如果將一個(gè)相同的公鑰上傳到不同的GitHub賬戶,GitHub則無法做出辨識(shí),進(jìn)而導(dǎo)致錯(cuò)誤
- 一臺(tái)電腦,可以生成多對公私鑰,可以通過配置,將不同的公鑰上傳到不同的GitHub賬號,那么就不存在單個(gè)公鑰綁定多個(gè)GitHub賬號的情況存在了
相關(guān)問題報(bào)錯(cuò):
- 同一臺(tái)電腦部署第二個(gè)Hexo博客執(zhí)行hexo g -d時(shí)報(bào)錯(cuò):ERROR: Permission to xxxxxx/xxxxxx.github.io.git denied to xxxxxx.
- 添加新的 SSH 密鑰 到 SSH agent 執(zhí)行ssh-add xxx時(shí)報(bào)錯(cuò):Could not open a connection to your authentication agent.
- 單獨(dú)設(shè)置用戶名/郵箱時(shí)報(bào)錯(cuò):fatal: not in a git directory
以下是詳細(xì)過程:
前提:假設(shè)你的第二個(gè)博客相關(guān)配置操作已經(jīng)順利完成,但使用hexo g -d命令部署到 GitHub 上時(shí)報(bào)錯(cuò):ERROR: Permission to xxxxxx/xxxxxx.github.io.git denied to xxxxxx.
- 查看當(dāng)前密鑰
首先我們打開終端輸入ls ~/.ssh/可以查看當(dāng)前已有的密鑰,顯示id_rsa 與 id_rsa_pub說明已經(jīng)有一對密鑰
- 創(chuàng)建新的密鑰
首先使用以下命令進(jìn)入 SSH根目錄下:
cd ~/.ssh/方法一
直接使用以下命令創(chuàng)建新密鑰,然后兩次回車即可:
ssh-keygen -t rsa -f ~/.ssh/這里是新密鑰名稱 -C "這里是你的郵箱"注意區(qū)別新密鑰名稱和舊密鑰名稱,不要相同!!!
方法二
使用下面命令行創(chuàng)建新密鑰:
ssh-keygen -t rsa -C "這里是你的郵箱"回車后會(huì)出現(xiàn):
Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/you/.ssh/id_rsa):注意此時(shí)需要你輸入新密鑰的名稱,同樣要注意區(qū)別新密鑰名稱和舊密鑰名稱,不要相同!!!之后再兩次回車,新密鑰創(chuàng)建完畢!
- 配置config
查看你的.ssh/根路徑下, 有沒有config文件,( 比如我的路徑為C:\Users\Lenovo.ssh)沒有則使用以下命令創(chuàng)建一個(gè)config文件:
touch config用記事本或者其他工具打開config文件(注意config文件是沒有任何后綴名的),寫入以下配置:
#第一個(gè)賬號,默認(rèn)使用的賬號,不用做任何更改 Host github.comHostName github.comUser gitIdentityFile ~/.ssh/id_rsa#第二個(gè)新賬號,#"xxxxxx"為前綴名,可以任意設(shè)置,要記住,后面需要用到 Host xxxxxx.github.comHostName github.comUser gitIdentityFile ~/.ssh/這里是你創(chuàng)建的新密鑰的名稱- 設(shè)置新GitHub賬戶SSH key
輸入以下命令復(fù)制你創(chuàng)建的公鑰:
clip < ~/.ssh/這里是你創(chuàng)建的新密鑰的名稱.pub也可以直接在.ssh目錄下找到你創(chuàng)建的新的公鑰,文件名為新密鑰的名稱.pub,(比如我的是trhx_rsa.pub),用記事本打開,復(fù)制里面的內(nèi)容,然后打開你的新GitHub賬號主頁,依次進(jìn)入Settings —> SSH and GPG keys —> New SSH key,將剛復(fù)制的內(nèi)容粘貼到Key那里,Title可以隨便填,點(diǎn)擊Add Key保存。
- 清空本地的 SSH 緩存,添加新的 SSH 密鑰 到 SSH agent中
使用命令cd ~/.sshcd到.ssh根目錄下,依次執(zhí)行以下命令:
ssh-add -D ssh-add xxxxxx #舊密鑰名稱,一般是id_rsa ssh-add xxxxxx #新創(chuàng)建的密鑰名稱如果執(zhí)行以上命令出現(xiàn)錯(cuò)誤:Could not open a connection to your authentication agent.,那么就需要先執(zhí)行ssh-agent bash,再執(zhí)行以上命令
- 驗(yàn)證配置是否成功
依次執(zhí)行以下命令,第一個(gè)為默認(rèn)ssh_key驗(yàn)證;第二個(gè)為新的ssh_key驗(yàn)證,其中“xxxxxx”為你先前在config文件中的命名
ssh -T git@github.com ssh -T git@xxxxxxx.github.com依次顯示以下信息, 則說明配置成功:
Hi 你的用戶名! You've successfully authenticated, but GitHub does not provide shell access.- 取消全局用戶名/郵箱配置,單獨(dú)設(shè)置用戶名/郵箱
執(zhí)行如下命令,取消全局用戶名和郵箱配置(如果已經(jīng)設(shè)置了全局的話):
git config --global --unset user.name git config --global --unset user.email分別進(jìn)入你的兩個(gè)Hexo博客.git目錄下執(zhí)行以下命令單獨(dú)設(shè)置用戶名/郵箱:
git config user.name "這里是用戶名" git config user.email "這里是你的郵箱"如果此時(shí)報(bào)錯(cuò):fatal: not in a git directory,說明你沒有進(jìn)入.git目錄下,具體路徑:\Hexo\.deploy_git\.git,.git目錄是隱藏的,需要你設(shè)置隱藏目錄可見
執(zhí)行以下命令可以查看設(shè)置是否成功
git config --list- hexo 配置文件修改git地址
打開你的第二個(gè)博客Hexo目錄下的_config.yml文件,找到deploy關(guān)鍵字,寫入以下配置并保存:
deploy:type: gitrepository: git@xxxxxx.github.com:你的用戶名/你的用戶名.github.io.gitbranch: master比如我的配置:
deploy:type: gitrepository: git@love109.github.com:love109/love109.github.io.gitbranch: master大功告成,再次執(zhí)行hexo g -d就能成功將新的博客部署到 Github 上了
總結(jié)
以上是生活随笔為你收集整理的一台电脑部署两个或多个 Hexo 博客(一台电脑使用两个或多个 GitHub 账号)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 明起多地高考成绩陆续公布:今年普通高校新
- 下一篇: 100W高速快充成标配!realme G