github和gitlab 同一台电脑一起使用
前段时间,在工作闲暇之余自己开发了一个测试项目,项目在我的工作电脑上,我想把项目上传到 github,这样回家之后也可以同时开发了, 可是我工作的电脑已经在使用gitlib了 公司的gilab 用的https的方式连接
思考:能不能同时使用,而且每次不用输入账号密码:
上网查资料,可以实现,于是开始实践
此文参考:
https://www.cnblogs.com/bdhk/p/7423329.html
https://blog.csdn.net/argleary/article/details/100638560
1公司的GitLab生成一个SSH-Key
# 在~/.ssh/目录会生成gitlab_id-rsa和gitlab_id-rsa.pub私钥和公钥。我们将gitlab_id-rsa.pub中的内容粘帖到公司GitLab服务器的SSH-key的配置中。
$ ssh-keygen -t rsa -C "注册的gitlab邮箱" -f ~/.ssh/gitlab_id-rsa
2公网github生成一个SSH-Key
# 在~/.ssh/目录会生成github_id-rsa和github_id-rsa.pub私钥和公钥。我们将github_id-rsa.pub中的内容粘帖到github服务器的SSH-key的配置中。
$ ssh-keygen -t rsa -C "注册的github邮箱" -f ~/.ssh/github_id-rsa
2. 将SSH key 添加到 ssh-agent
使用 ssh-add
~/.ssh/github_id-rsa 将产生的新ssh key添加到ssh-agent中
使用 ssh-add
~/.ssh/gitlab_id-rsa 将产生的新ssh key添加到ssh-agent中
补充: 如果出现“Could not open a connection to your authentication agent.”的错误
执行如下命令 ssh-agent bash
然后再执行 ssh-add ~/.ssh/** 命令即可
2.添加config
在~/.ssh
下添加config配置文件,内容如下:
# github key
Host github
Port 22
User git
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id-rsa
Host gitlab
Port 22
User git
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_id-rsa
3.配置仓库
假设gitlab与jgithub的工作目录分别如下所示:
github工作仓库:~/workspace/github
gitlab工作仓库:~/workspace/gitlab
#gitlab 配置全局
cd ~/workspace/gitlab
git init
git config --global user.name 'gitlab'
git config --global user.email 'gitlab@company.com'
#github 配置仓库单独的用户名和邮箱
cd ~/workspace/github
git init
git config --local user.name 'personal'
git config --local user.email 'personal@163.com'
4.测试
# 测试github
$ ssh -T git@github.com
# 测试gitlab
$ ssh -T git@gitlab.com
若出现
成功!
若出现 git@gitlab.com: Permission denied (publickey,keyboard-interactive).
说明sshkey没有配置
需要在你的 github / gitlab 配置 github_id-rsa_pub 到 setting>ssh里面