Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【20170217】 GitLab和GitHub多账户设置SSH #72

Closed
zhongxia245 opened this issue Feb 17, 2017 · 5 comments
Closed

【20170217】 GitLab和GitHub多账户设置SSH #72

zhongxia245 opened this issue Feb 17, 2017 · 5 comments

Comments

@zhongxia245
Copy link
Owner

时间: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

# 没有报错就是成功了

image

Host 名称可以随便设置, HostName 就是 网站的地址

三、Github代码上传,如何在dashboard 显示出来

github dashboard 只会显示 用户邮箱上传的代码才算数。但是我们分别使用 gitlab 和 github ,如果设置 同样的用户名, 就会有一个不起作用。

1. 解决方案:

# 设置全局 的 name 和 email
git config --global user.name "zhongxia"
git config --global user.email "[email protected]"

# 给特定的参数设置单独的 name 和 email
git config --local user.name "test"
git config --local user.email "[email protected]"

2. 问题

这样有一个比较麻烦的就是,如果新建一个仓库后,如果不想用全局的名称和邮箱,还需要单独在设置一次。麻烦。

二、参考文章

  1. 《gitlab/github 多账户下设置 ssh keys》
@AgoniNemo
Copy link

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

这样设置不行呀

@tangzzz-fan
Copy link

你这样写, 你本地有没有设置对应的 host 映射? 使用 switchHosts 看一下对应的映射有没有设置. etc/hosts

@AgoniNemo
Copy link

@tangzzz-fan 要怎么设置?

@tangzzz-fan
Copy link

准备工作: 1 先打开电脑的隐藏文件设置, 取消文件隐藏; 2 前往你的电脑, 然后选择 etc 的复身, 右键设置文件的读取属性.
10.10.10.89 是你公司内网的地址, 进行对应的映射格式比如: 10.10.10.89 git.baidu.com 然后保存就可以了.

@zhongxia245
Copy link
Owner Author

@tangzzz-fan 不需要设置host,

# github
Host github
    HostName github.com
    IdentityFile ~/.ssh/id_github_rsa

这个配置说明: 如果域名为 github.com 则使用 ~/.ssh/id_github_rsa 密钥文件

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants