配置GitHub多个账号的ssh及多个git平台的ssh

前言

平时只用一个GitHub账号或则一直使用http、HTTPS连接git服务器觉得没什么,进来因为不同的需求注册了好几个GitHub账号,在同一台电脑上提交不同GitHub账号下的项目时发现提交不了,很麻烦,同理,同时用ssh管理多个git平台上的项目时也会遇到同样的麻烦,经过查找资料,很好的解决了这个问题

参考资料:Mac下配置多个SSH-Keyssh配置-使用本地多个私钥连接多个账户的github rsa认证

一、生成rsa秘钥

ssh-keygen -t rsa -C "[email protected]"

然后根据提示输入相应内容,也可以图方便一路点击Enter 回车键生成不设置密码的默认rsa文件

二、将生成的公钥id_rsa.pub的内容复制到对应的git平台如GitHub、GitLab等对应的地方

1605558-1e96e6aecbb97231.png
image.png

理论上如果过个git平台上用的是同一个邮箱账号,这一个生成出来的可以用在不同的git平台上,但只要账号的邮箱不一样,就需要重新根据邮箱账号生成

二、配置多账号或多平台的ssh
1、进入当前用户的.ssh文件目录,比如Mac

cd ~/.ssh
#如果当前文件夹下没有config文件,创建一个名字叫config的txt文件
vim cnofig

2、编辑config文件,给每一个账号或平台设置一个对应的别名,设置对应的ssh私钥
特别说明:
Host是@:中间的内容
GitHub的ssh例子
替换Host前:[email protected]:onlyking/iosTool.git
替换Host后:git@github-onlyking:onlyking/iosTool.git
GitLab的ssh例子:
替换Host后
替换Host前:ssh://[email protected]:1123/dog/happydog.git
替换Host后:ssh://git@gitlab-dog:1123/dog/happydog.git

ssh的git的请求过程是先用Host去匹配.ssh下的config文件,然后找到对应配置的私钥及将HostName替换Host取访问git服务器,如果没有配置config文件,找的是.ssh目录下的默认私钥

Host gitlab-dog
HostName 124.123.122.121
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_fake_rsa
 
 
# [email protected]:onlyking/xxx.git -> git@github-onlyking:onlyking/xxx.git
Host github-onlyking
User git
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_onlyking_rsa
 
#[email protected]:happydog/xxx.git -> git@github-dog:happydog/xxx.git
Host github-dog
  User git
  HostName github.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/github_dog_rsa

3、修改git仓库URL
修改项目的远程仓库地址前:


1605558-5be020687bf7ba69.png
image.png

修改项目的远程仓库地址后:


1605558-1ec2de963936746a.png
image.png

猜你喜欢

转载自blog.csdn.net/weixin_33847182/article/details/86887430
今日推荐