【20170217】 GitLab和GitHub多账户设置SSH
Closed this issue · 5 comments
时间:2017-02-17 11:38:24
作者:zhongxia
一、背景
由于公司使用gitlab进行代码管理,而平时自己使用github来管理自己的代码。
github 和 gitlab 都是使用 git来来进行管理。
每次提交密码的时候,都需要我们输入密码,这样的操作实在是太麻烦了, 因此我们需要设置 ssh ,避免每次输入密码。
但是呢,每个帐号生成的密钥位置喝名称都是相同的,这样后面的密钥就覆盖了前面的密钥。
0. 解决办法
就是生成两个名称不同的密钥,同时配置不同的密钥到不同的Host上面。这样就解决了密钥冲突的问题。
1. 生成密钥
# ssh可以使用默认的名称
ssh-keygen -t rsa -C "注册的gitlab邮箱"
# 查看公钥,添加到gitlab的ssh处
cat ~/.ssh/id_rsa.pub
# 同理生成 github的密钥(密钥名称不一样,比如 id_rsa_github)
# 右上角用户头像-->Setting->SSH and GPG keys --> New SSH key
cat cat ~/.ssh/id_rsa_github.pub
2. 添加配置
cd ~/.ssh/
touch config
# gitlab
Host gitlab
HostName git.lcgc.work
IdentityFile ~/.ssh/id_rsa
# github
Host github
HostName github.com
IdentityFile ~/.ssh/id_github_rsa
# -------------------
# 测试是否可用, gitlab 、 github 就是上面的 Host名称
ssh -T git@gitlab
ssh -T git@github
# 没有报错就是成功了
Host 名称可以随便设置, HostName 就是 网站的地址
三、Github代码上传,如何在dashboard 显示出来
github dashboard 只会显示 用户邮箱上传的代码才算数。但是我们分别使用 gitlab 和 github ,如果设置 同样的用户名, 就会有一个不起作用。
1. 解决方案:
# 设置全局 的 name 和 email
git config --global user.name "zhongxia"
git config --global user.email "zhongxia245@sina.com"
# 给特定的参数设置单独的 name 和 email
git config --local user.name "test"
git config --local user.email "test@test.com"
2. 问题
这样有一个比较麻烦的就是,如果新建一个仓库后,如果不想用全局的名称和邮箱,还需要单独在设置一次。麻烦。
二、参考文章
gitlab主机地址是http://10.10.10.89:11000
这样的要怎么设置
host gitlab-zxf
hostname http://10.10.10.89
User xxxx
IdentityFile ~/.ssh/gitlabzxf_id_rsa
IdentitiesOnly yes
这样设置不行呀
你这样写, 你本地有没有设置对应的 host 映射? 使用 switchHosts 看一下对应的映射有没有设置. etc/hosts
@tangzzz-fan 要怎么设置?
准备工作: 1 先打开电脑的隐藏文件设置, 取消文件隐藏; 2 前往你的电脑, 然后选择 etc 的复身, 右键设置文件的读取属性.
10.10.10.89 是你公司内网的地址, 进行对应的映射格式比如: 10.10.10.89 git.baidu.com 然后保存就可以了.
@tangzzz-fan 不需要设置host,
# github
Host github
HostName github.com
IdentityFile ~/.ssh/id_github_rsa
这个配置说明: 如果域名为 github.com 则使用 ~/.ssh/id_github_rsa 密钥文件