生成并添加第一个ssh key

cd ~/.ssh
ssh-keygen -t rsa -C "youremail@yourcompany.com"

这时可以一路回车,不输入任何字符,将自动生成id_rsaid_rsa.pub文件。

生成并添加第二个ssh key

ssh-keygen -t rsa -C "youremail@gmail.com"

注意,这时不能一路回车,否则邮箱将覆盖上一次生成的ssh key,给这个文件起一个名字, 比如叫 id_rsa_coding, 所以相应的也会生成一个 id_rsa_coding.pub 文件。

此时查看.ssh目录下的文件,可以发现多了id_rsa_codingid_rsa_coding.pub两个文件。

添加私钥

ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa_coding

修改配置文件

在 ~/.ssh 目录下新建一个config文件

touch config

并添加以下内容

# github
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa

# coding
Host git.coding.net
    User xxx@email.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_coding

给github/coding添加SSH公钥

可以用记事本打开id_rsa.pubid_rsa_coding.pub,然后将其中的内容分别复制添加到github和coding的用户设置中的公钥里。

测试

ssh -T git@github.com

(遇到询问是否信任服务器公钥,输入 yes 即可)

如果输出Hi BFDZ! You've successfully authenticated, but GitHub does not provide shell access.,说明成功的连上github了。

ssh -T git@git.coding.net

输出Hello BFDZ You've connected to Coding.net by SSH successfully!,说明成功连上了coding。

配置Hexo部署参数

打开hexo的主配置文件_config.yml ,修改deploy部分

deploy: 
- type: git 
  repo: git@github.com:BFDZ/bfdz.github.io.git
  branch: master
- type: git 
  repo: git@git.coding.net:BFDZ/bfdz.git
  branch: coding-pages

同时使用多个 deployer,Hexo 会依照顺序执行每个 deployer。


参考资料

github/gitlab同时管理多个ssh key
配置SSH公钥
Hexo文档|部署