使用场景
不知道大家有没有遇到这种场景,在公司连着公司gitlab仓库,你自己本人也有个github仓库。我就遇到这种问题,
在一台电脑上同时向gitlab、github分别提交代码。一台电脑可以生成多个sshkey,然后根据sshkey的不同来区分不同的仓库。
也就是一个sshkey 是唯一的,只要保证这个唯一你就可以愉快的提交代码了。
- 同一用户提交,比如gitlab 和github 用同一个sshkey,只用tonyOffice生成一个sshkey
- 不同用户提交,比如gitlab 用github 用不同的sshkey,一个tonyOffice生成,一个用tonyHome生成
第一种举例用tonyOffice生成sshkey
比如我要连接github,本来我的电脑连接的是公司的gitlab的仓库。
执行如下命令ssh-keygen -t rsa -C "tonyOffice"
, 这个tonyOffice是别名你可以随便取,生成好之后去cd /Users/tonyyang/.ssh
,找到对应的目录。
查看cat id_rsa.pub
将密钥拷贝好。
将密钥粘贴到github的sshkey栏中
此刻你去你自己的github中拷贝需要下载的仓库,拷贝以SSH key方式的路径。
这个时候你idea 里可以通过git下载远程的仓库了。
HTTPS 方式连接
通过https的方式更加容易,直接登录输入你的github账号名密码。就关联到你的github。
这个时候你idea 里可以通过git下载远程的仓库了。
以上 的提交方式都是以同一个用户名登录到github和gitlub。
第二种 用不同账户生成不同的sshkey来连接
如果需要以不同的用户名登录到对应仓库,则需要生成多个SSH KEY。
在 .ssh 文件夹下新建 config 文件并编辑,不同密钥对应不同的git账号。
#
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
# two
Host two.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_2
将生成的id_rsa.pub 和id_rsa_2.pub 拷贝到对应仓库的SSH KEY。
测试SSH连接
ssh -T git@two.github.com
ssh -T git@github.com
如果测试连接成功,则已经关联成功了 。
第三种HTTPS 方式连接
通过https的方式更加容易,直接登录输入你的github账号名密码。就关联到你的github。