便捷地同时使用github和gitlab的方法

昨天完成了迁移,迁移时也换了新的gitlab账户,并绑定了新的ssh。更新博文后发现hexo d命令总是错误,原因是github的permission处于denied的状态,猜测一定是ssh的问题。

由于按照网上给出的ssh生成命令进行,一路回车,等于对id_rsa文件的命名采取了默认状态,导致github在获取rsa的时候引起了错乱。

那么优雅的使用github和gitlab的方法就是命名两个不同的rsa文件分别进行绑定,然后用config文件来做配置区分。

步骤一: 生成密钥

首先要在~/ssh/目录下操作,直接把文件生成在本文件夹下。

gitlab密钥

1
2
3
4
5
ssh-keygen -t rsa -C "gitlab 用户邮箱地址" ←┘
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa): ←┘
Enter passphrase (empty for no passphrase): ←┘
Enter same passphrase again: ←┘

这时候生成的是一对名为id_rsa和id_rsa.pub的公私密钥文件。

github密钥

1
2
3
4
5
ssh-keygen -t rsa -C "github 用户邮箱地址" ←┘
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa): id_rsa_github ←┘
Enter passphrase (empty for no passphrase): ←┘
Enter same passphrase again: ←┘

这时候生成的是一对名为id_rsa_github和id_rsa_github.pub的公私密钥文件。

~/.ssh/ 目录下生成以下文件:

1
2
3
4
- id_rsa
- id_rsa.pub
- id_rsa_github
- id_rsa_github.pub

分别将 id_rsa.pub 和 id_rsa_github.pub 内容复制到 gitlab 或 github 的 ssh key 中。

新建config文件

1
2
3
4
5
6
7
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_rsa_github
Host gitlab.com
HostName gitlab.shoukala.com
IdentityFile ~/.ssh/id_rsa

注意这里Host后面一定要写上 .com,不然hexo d的命令还是会失败。

测试连接

使用ssh -T git@gitlab.com测试gitlab的连接,使用ssh -T git@github.com测试github的链接。

会在 ~/.ssh/ 目录下自动生成 known_hosts 文件。

此时,我们就能分别维护gitlab和github的项目了。

Snapline wechat
扫码关注我的公众号“约翰柠檬的唱片店”
Buy me a cup of Coffee