git本地创建多账户ssh

102 阅读3分钟

前言: 本文记述了我最近遇到的一个git相关问题到解决问题的过程 如有疑问可以留言/私信讨论

##一.取消全局配置

当然,取消全局配置只是为了更加方便,全局设置就是你的每个仓库如果不单独配置用户信息 那么它的默认用户信息就是全局信息, 就算设置了全局配置,也是可以为某个仓库专门添加个 人信息,本文后面会提到

# 移除全局配置账户
git config --global --unset user.name

#查看全局用户名
git config --global user.name

# 移除全局配置邮箱
git config --global --unset user.email

# 查看全局邮箱
git config --global user.email

# 移除全局密码
git config --global --unset user.password

# 查看全局密码
git config --global user.password

##二.创建多个ssh key 1.右键【Git Bash Here】进入【Git Bash】,输入以下命令生成user1的SSH KEY:

#-f 后面接的是ssh的保存地址, 当然文件名是可以自定义的,示例种的_user1后缀就是自定义添加
ssh-keygen -t rsa -f ~/.ssh/id_rsa_user1 -C "user1email@email.com"

如下截图:

创建的时候如果是用intelij系软件作为托管操作工具, 请不要设置密码, 不要设置密码, 不要设置密码 intelij会在通信的时候没有入口输入ssh的密码导致通信失败 按回车表示空密码

蓝色涂掉的部分是自定义的ssh文件名 图1

2.重复1步骤可以创建多个ssh 如图

我没有做自定义地址, 只是修改了文件名, config 有什么用下面会说到 ssh目录

##三.配置ssh到github,gitlab等托管仓库 1,这一步骤各位看官应该都知道了,不过还是贴一下

这种仓库的设置入口都大同小异,没什么多说的啦,就放两张图, 然后各位自行针对去设置 第一步 第二步 验证ssh 连接

#git@ 后面接的是你配置ssh的域名, 本文以github举例 , -i后面接的是ssh key文件的地址 要精确到文件名
ssh -T git@github.com -i ~/.ssh/id_rsa_github

第三步

##四.配置config文件 1,创建 config文件

找到ssh目录 , 打开config 文件,没有就创建一个, 没有后缀名,没有后缀名,没有后缀名,然后用记事本打开, 推荐editplus 或者notepad 等等 ssh目录

2,编辑config文件

# 配置user github
#主机别名
Host mygithub  
#服务器真实地址
HostName github.com  
#私钥文件路径
IdentityFile C:\\Users\\admin\\.ssh\\id_rsa_github
#认证方式
PreferredAuthentications publickey
#用户名
User myName2

config

主机别名稍后再说, 如果没有多个ssh key 绑定的同一个代码托管仓库, 我个人推荐把主机别名和真实服务器地址设置成一样的(我这里设置的是一样的),原因后面会解释

五.代码库拉取以及配置 1,验证ssh

第三节3小节不是已经提过验证了嘛, 怎么又验证,各位看官别着急,往下看

#这次没有加i  , 注意 ,这次的git@ 后面的域名此时不是网站的域名 
ssh -T git@mygithub

在此时config里面的host别名就起到作用啦! ,这个时候就会自动分配ssh key和主机

2,拉取代码

拉取代码的方式也和以前的ssh拉取方式有点不一样

#以前的地址
git@github.com:shaomaicheng/kotlinx.coroutines-zh.git
#现在的地址
git@mygithub:shaomaicheng/kotlinx.coroutines-zh.git

也就是说在拉取操作的时候也需要做替换,用来保证git能识别到是哪个ssh 和 用户名

刚才提到过如果别名和主机地址一样的话, 那就不需要做替换啦 前提是没有多个ssh绑定同一个托管仓库

3,代码库更改配置,设置独立user

找到代码根目录的.git文件夹 找到config

用记事本打开config文件 结构 url 这个时候要和.ssh目录下config的配置绑定 user信息也需要为仓库单独设置哦(如果没有全局用户名的话)

本文整理自CSDN文章 : @Radioman-lhq配置多个Git账号(windows 10)