透過 SSH 分別管理多個 Github Pages
前言
因為團隊項目需求,包含現在這個部落格,我必須另外再管理兩個 Github Pages 項目。而這件事折騰了我一個晚上,故在此備忘。
其中這兩個項目都以 Hexo 分別架設在不同的 Github 帳號的 Github Pages 上。
理論
一般來說,我們用的 push 都是透過 https protocol 來進行的,方便簡單,除了第一次要輸入帳號密碼,後面都是 add, commit, push 素質三連即可。
遺憾的是,如果要管理多個帳號,就必須改使用 ssh 了。
所以簡單來說,我們要做的就是:
- 分別創立 github 帳號,並新增 github pages 的 repo
- 在本地分別創建 hexo directory
- ssh-gen ssh key,並分與 github 帳號設定配對
- 配對完還得在本地進行 ssh config 的對應設定,也別忘了 add 到 ssh-agent 中
- 然後就可以用 hexo 的 hexo-deployer-git 進行推送了
一些細節
創建 hexo directory
1 | > mkdir blogA |
ssh 設定
ssh-keygen -t rsa -C "accountA@gmail.com"
此時 ~/.ssh
中就會出現新的 key 與 key.pug,而需要被配對到 github ssh keys 的就是其中的 key.pug,把公鑰複製過去就對了。
接著別忘了在本地提交 key 給 ssh-agent,輸入 ssh-add ~/.ssh/blogAkey
提交。
接著創建另一個 key。
接著在 ~/.ssh
裡 mkdir 一個 config 得到 ~/.ssh/config
,編輯它:
1 | Host blogA |
- 其中 host 填入任一代稱,後面配對使用。
- IdentityFile 填入對應的 key file。特別注意是「identity」,不是「identify」,我就是自己打太順,在這邊報錯了很多次還自己沒發現。
hexo 部署
npm install hexo-deployer-git --save
修改 hexo 資料夾的 _config.yml
中的 deployment 設定:
1 | deploy: |
- 其中 repo 的部分,在 github pages 的引導頁面中,給你的 ssh 地址應該是
git@github.com:blogA/blogA.github.io.git
。但因為我們在 config 中已經設定好 ssh 的 host 代稱了,所以以代稱把 github.com 取代掉。
然後就可以 npx hexo deploy
了。
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Hi 我劉昕!
評論