一台电脑部署两个或多个 Hexo 博客(一台电脑使用两个或多个 GitHub 账号)
由于個人原因需要在一臺電腦上部署兩個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根目錄下:
cd ~/.ssh/方法一
直接使用以下命令創建新密鑰,然后兩次回車即可:
ssh-keygen -t rsa -f ~/.ssh/這里是新密鑰名稱 -C "這里是你的郵箱"注意區別新密鑰名稱和舊密鑰名稱,不要相同!!!
方法二
使用下面命令行創建新密鑰:
ssh-keygen -t rsa -C "這里是你的郵箱"回車后會出現:
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文件:
touch config用記事本或者其他工具打開config文件(注意config文件是沒有任何后綴名的),寫入以下配置:
#第一個賬號,默認使用的賬號,不用做任何更改 Host github.comHostName github.comUser gitIdentityFile ~/.ssh/id_rsa#第二個新賬號,#"xxxxxx"為前綴名,可以任意設置,要記住,后面需要用到 Host xxxxxx.github.comHostName github.comUser gitIdentityFile ~/.ssh/這里是你創建的新密鑰的名稱- 設置新GitHub賬戶SSH key
輸入以下命令復制你創建的公鑰:
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 ~/.sshcd到.ssh根目錄下,依次執行以下命令:
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文件中的命名
ssh -T git@github.com ssh -T git@xxxxxxx.github.com依次顯示以下信息, 則說明配置成功:
Hi 你的用戶名! You've successfully authenticated, but GitHub does not provide shell access.- 取消全局用戶名/郵箱配置,單獨設置用戶名/郵箱
執行如下命令,取消全局用戶名和郵箱配置(如果已經設置了全局的話):
git config --global --unset user.name git config --global --unset user.email分別進入你的兩個Hexo博客.git目錄下執行以下命令單獨設置用戶名/郵箱:
git config user.name "這里是用戶名" git config user.email "這里是你的郵箱"如果此時報錯:fatal: not in a git directory,說明你沒有進入.git目錄下,具體路徑:\Hexo\.deploy_git\.git,.git目錄是隱藏的,需要你設置隱藏目錄可見
執行以下命令可以查看設置是否成功
git config --list- hexo 配置文件修改git地址
打開你的第二個博客Hexo目錄下的_config.yml文件,找到deploy關鍵字,寫入以下配置并保存:
deploy:type: gitrepository: git@xxxxxx.github.com:你的用戶名/你的用戶名.github.io.gitbranch: master比如我的配置:
deploy:type: gitrepository: git@love109.github.com:love109/love109.github.io.gitbranch: master大功告成,再次執行hexo g -d就能成功將新的博客部署到 Github 上了
總結
以上是生活随笔為你收集整理的一台电脑部署两个或多个 Hexo 博客(一台电脑使用两个或多个 GitHub 账号)的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 明起多地高考成绩陆续公布:今年普通高校新
 - 下一篇: 100W高速快充成标配!realme G