ssh 配置多账户
- 公司部署了
gitlab
,自己同时在用github
,所以需要配置两套ssh账户
- 特将相关流程记录下,方便后期查阅
生成 key
1 | ssh-keygen -t rsa -C 'xxx@email.com' -f ~/.ssh/xxx-rsa |
- 执行上述命令后,会在~/.ssh/目录下生成一个
xxx-rsa
和xxx-rsa.pub
两个文件,前者是需要保存在本地的私钥,后者是需要上传到gitlab
或者github
上的公钥 - 生成过程中,可能会询问你设置使用私钥时的密码(
passphrases
)- 可以忽略
- 如果设置了,后期使用
ssh
时,要使用ssh-agent
来管理ssh密码
,实现免密登录,或者手动输入ssh密码
- 建议忽略
上传公钥
github
可以在https://github.com/settings/keys
页面上传公钥gitlab
可在用户设置页面上传公钥
配置
- 指定不同的域,使用不同的配置
1 | # git.xxx.com的配置 |
Host
域名,也可以理解为下面一套配置的别名,在ssh
命令中可直接使用别名;- 建议设置成跟
HostName
值一样,在实际使用时,使用别名,会出现问题,所以建议Host
、HostName
设置成一样的
- 建议设置成跟
HostName
,具体域名,完整域名IdentityFile
当前域的配置文件(私钥)地址User
用户,这里的用户是登录后台服务器的用户名,一般都为git
,不需要修改#
后面为注释ssh配置文件
具体解释可参考
测试
1 | ssh -T user@HostName |
生成多个 key 的实例
- 生成
github
、gitlab
的ssh
配置
生成相应 key
1 | # 生成github |
- 生成后,
~/.ssh/
目录下应该会有下面 4 个文件 - ssh.png
分别上传公钥
- 上传
github
公钥- 打开用户下面的
settings
->SSH and GPG keys
页面,或者直接访问https://github.com/settings/keys
- 点击
New SSH key
- 记事本打开
github-rsa.pub
并拷贝内容到github
即可
- 打开用户下面的
- 上传
gitlab
公钥- 步骤类似
github
- 拷贝
gitlab-rsa.pub
内容到相应公钥填写处即可
- 步骤类似
编写配置文件
1 | Host gitlab..com |
测试
1 | ssh -T git@github.com |
- 出现下图提示即可
- ssh-2.png
- 同理,测试
gitlab
即可