同一台电脑同时使用gitlab和github

背景:

公司使用的代码管理工具是gitlab,我个人使用的是github,在使用同一台电脑的情况下,将代码上传到相应的工具中,我们知道,在使用这两款工具的时候,需要在本地生成秘钥,在工具平台上配置相关秘钥,同一台电脑使用两种工具就需要我们进行配置,让电脑知道该往哪里传。废话说完~~

思路:

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

步骤

1、生成秘钥

gitlab:
# 在~/.ssh/目录会生成id_rsa_company和id_rsa_company.pub私钥和公钥。
#后面将id_rsa_company.pub中的内容粘帖到公司GitLab服务器的SSH-key的配置中。

$ ssh-keygen -t rsa -C "注册gitlab邮箱" -f ~/.ssh/id_rsa_company
github:
# 在~/.ssh/目录会生成id_rsa_self和id_rsa_self.pub私钥和公钥。
#后面将id_rsa_self.pub中的内容粘帖到个人github的SSH-key的配置中。

$ ssh-keygen -t rsa -C "注册github邮箱" -f ~/.ssh/id_rsa_self

创建config

在~/.ssh下创建config文件,在Windows下可以鼠标操作创建,但是要注意,这个文件是没有后缀的。

cd ~/.ssh
touch config

添加如下内容:

# self(182xxxx8804@163.com)
Host github.com    
    Port 22
    User git
    HostName github.com   #github地址
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_self
# company()
Host gitlab.com
    Port 22
    User git
    HostName gitlab.com   #公司gitlab地址
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_company

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

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

在设置HostName需要注意:
我们获取公司gitlab或者github地址的时候,可能是copy浏览器上的地址而来,就像这样的https://github.com,这个时候需要把https://去掉,保留github.com部分,不然是连不上的。

测试

# 测试github
$ ssh -T git@github.com

# 测试gitlab
$ ssh -T git@gitlab.com

测试成功返回:
在这里插入图片描述
如果看到命令行给你打招呼那就是成功了。

关于测试这边有个小坑:

我再测试github的时候,用了我github的用户名,结果连不上ssh -T tangrenxin@github.com,然后报publickey的错误。
看官网信息:


Always use the “git” user

All connections, including those for remote URLs, must be made as the “git” user. If you try to connect with your GitHub username, it will fail:

ssh -T GITHUB-USERNAME@github.com
Permission denied (publickey).

If your connection failed and you’re using a remote URL with your GitHub username, you can change the remote URL to use the “git” user.

You should verify your connection by typing:

ssh -T git@github.com
Hi username! You’ve successfully authenticated…


使用 ssh -T git@github.com 做测试即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值