git本机配置多个SSH验证
git向平台提交代码时的验证
- 必要性:如果不存在验证,那么仓库主的代码可以被所有人修改和提交,这对代码是种极大的不安全
- 验证方式: ssh公钥私钥验证,https验证
https的验证方式
首次向该平台提交代码时,需要输入一次用户名和密码,输入过后本机对应这个平台的https的验证方式会存在一条记录(windows凭据)

这种windows凭据记录的信息为
- 平台的地址(https)
- 本机使用的对应该平台的用户名
- 对应上面两个字段的密码

可能有一种情况:
自己在这个平台有多个账户,在一个账户里有一个私有仓库,我想使用https链接克隆下来,结果windows凭据里的是另一个账户的对应的凭据,这时就会出现 “You do not have permission to pull from the repository via HTTPS”,这时我们应该知道从哪里去解决这个问题了
ssh的验证方式
本地生成ssh公钥密钥
1 | |

平台添加公钥

注:ssh验证方式只对ssh提供的链接有效,https并不需要,本地的私钥和平台上的私钥只要对应就可以得到验证通过
多个ssh公私钥对的配置
对应不同的平台使用不同的密钥对,这样的话可以在.ssh的目录里创建个名为config的文件(就不会冲突了)
注意:多个ssh的创建创建时要填上不同的保存位置(一般在同一个目录,但文件名不同),不然的话互相覆盖,最后只得到一对密钥,具体做法就是在ssh-keygen -t rsa -C “@.com”之后第一次不要回车,填写位置,然后下两次直接回车。
#config示例

注意:多个平台可能有多个用户名,可能每个仓库对应的平台不一样,进而对应的仓库名和邮箱不一样,所以这里还会出现一个问题,就是提交时,可能会出现提交者的名字错乱的问题(一个平台的代码提交者是另一个平台的用户名)一个好的解决办法是:
先去除全局的user.name 和 user.email,不用统一的了(本机只去除一次,全局生效)
1
2git config --global --unset user.name
git config --global --unset user.email每次commit时若没有name和email就没法创建历史,就会给出错误提示,这时我们用如下方式创建对应该仓库的用户名和邮箱,每个仓库只需要设置一次就好。
1
2git config user.name "用户名"
git config user.email "邮箱"
git本机配置多个SSH验证
https://blog.wangxk.cc/2020/01/02/git本机配置多个SSH验证/