git: 一台电脑上同时配置github与gitlab

1,393 阅读1分钟

思路

  1. 在~/.ssh/下生成两个秘钥文件(github:id_rsa_XXX,gitlab:id_rsa_XXX)
  2. 新增配置文件config,在config 中进行配置
  3. 将本地秘钥复制到工具平台的SSH-key的配置中

步骤

生成密钥

分别生成两个密钥

$ ssh-keygen -t rsa -C (注册gitlab邮箱)

创建config

在~/.ssh下创建config文件

!注意,这个文件是没有后缀的。

添加内容

Host gitlab.xxx.com (gitlab的host地址)
    HostName gitlab.xxx.com
    IdentityFile ~/.ssh/id_rsa
Host github.com (github的host地址)
    HostName github.com
    IdentityFile ~/.ssh/id_rsa_github

config配置的解释

配置字段信息进行简单解释:

Host
	它涵盖了下面一个段的配置,我们可以通过他来替代将要连接的服务器地址。
	这里可以使用任意字段或通配符。当ssh的时候如果服务器地址能匹配上这里Host指定的值,
	则Host下面指定的HostName将被作为最终的服务器地址使用,
	并且将使用该Host字段下面配置的所有自定义配置来覆盖默认的/etc/ssh/ssh_config配置信息。
Port
	自定义的端口。默认为22,可不配置
User
	自定义的用户名,默认为git,可不配置
HostName
	
PreferredAuthentications
	指定优先使用哪种方式验证,支持密码和秘钥验证方式
IdentityFile
	指定本次连接使用的密钥文件

测试

# github
$ ssh -T git@github.com
# gitlab
$ ssh -T git@gitlab.com

如果显示Permission denified的话可以尝试使用

ssh -T -v git@github.com

去查看整个过程找出失败的原因进行定点修改