本地配置切换github和gitlab
简介
在公司的电脑上对公司的gitlab和个人的github进行切换。
我们希望把不同的git代码托管服务账号和提交内容进行隔离,从而实现各个账号各自管理自己的代码,互不干扰。
操作
- 1.git bash运行
ls -al ~/.ssh
查看本地ssh是否有密钥 - 2.如果没有,生产密钥
// 生成github秘钥
ssh-keygen -t rsa -C 'github登录的邮箱' -f ~/.ssh/id_rsa_github
// -t指定秘钥类型,默认rsa
// -C 设置注释文字,比如邮箱
// -f 指定秘钥文件名称
// 按enter,不输入用户名与密码
// 会生成文件名为id_rsa_github与id_rsa_github.pub两个文件
// 同理生成gitlab秘钥
ssh-keygen -t rsa -C 'gitlab登录的邮箱' -f ~/.ssh/id_rsa_gitlab
// 会生成文件名为id_rsa_gitlab与id_rsa_gitlab.pub两个文件
- 3.运行ls命令应该就可以看到生成的秘钥文件了,把
id_rsa_github.pub
与id_rsa_gitlab.pub
文件分别存放到github与gitlab的Settings中的SSH Keys中即可 - 4.配置.ssh文件下的config文件
#gitlab
Host gitlab
HostName gitlab.*.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
#github
Host github
AddKeysToAgent yes
UseKeychain yes
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
- 5.添加到ssh agent中,
ssh-add ~/.ssh/id_rsa_gitlab
ssh-add ~/.ssh/id_rsa_github
// 如果出现
// Could not open a connection to your authentication agent
// 先执行
ssh-agent bash
测试连接
ssh -T git@github.com
// =>
Hi TuringH1! You've successfully authenticated, but GitHub does not provide shell access.
如果出现以上内容,则代表连接已经成功了,接下来就可以愉快的搞git了
注意事项
在使用github时,在项目下初始化git的时候记得定义好user.name和user.email
git config --local user.name 'aaa'
git config --local user.email 'aaa@qq.com'
如果测试连接失败,Permission denied (publickey).原因是们自定义了 id_rsa_github 钥匙名,默认情况下,连接会搜索 id_rsa 钥匙名,所以这里会失败