一、 问题
1、工作中常常需要在一台电脑上使用多个代码托管平台,此时需要将针对不同平台生成的多个ssh私匙进行配置,否则会出现后面新生成的SSH私匙无法被使用,或覆盖之前生成的私匙等问题。
2、在此以Windows操作平台,及 github 和 gitee代码托管平台为例进行测试。
二、 方案
按照GitBash的安装、配置的方式来分别生成github和gitee平台对应的公匙和私匙。主要流程如下所示:
1、首先设置姓名,邮箱,以分辨后期是谁提交改动代码
git config --global user.name "Firstname Lastname"
git config --global user.email "your_email@example.com"
2、执行生成对应平台公匙和私匙SSH Key的命令,如下:
ssh-keygen -t rsa -C "your_email@example.com"
- 执行该命令后会提示如下的内容 ,此时要注意选择生成的目录位置及文件名,一般默认的地址及文件为:
/Users/your_user_directory/.ssh/id_rsa,若不修改则第二次生成的公匙和私匙就会覆盖第一次生成的内容,导致第一次的公私和私匙无法使用。 
- 在此将
GitBash第二次生成Gitee平台的私匙和公匙修改成指定目录的内容(第一次生成的github保持默认),如下图所示,将其指定到自己新创建的目录GiteeKey中,这样能保证第二次生成的不会覆盖掉之前的。(红线部分为自己输入的路径及文件名) 
3、再将生成的各自平台上的公匙(id_rsa.pub),添加到对应平台上的SSH Key的位置保存。
4、由于主机上有两个私匙,默认的情况下远端找不到对应的私匙与其公匙进行匹配,因此需要添加对应的配置文件来进行说明,如下所示:
Host:为代码托管平台主机,在此为github.comHostName:代码托管平台主机名,在此为github.comIdentityFile:与远端仓库的公匙进行配对的私匙的地址,该项最为重要,对应私匙的位置必须要正确。PreferredAuthentications:优先认证方式,在此为ssh的公匙。
# 配置GitHub.com
Host github.com
HostName github.com
IdentityFile C:\\Users\\Xu_asus\\.ssh\\id_rsa
PreferredAuthentications publickey
# 配置gitee.com
Host gitee.com
HostName gitee.com
IdentityFile C:\\Users\\Xu_asus\\.ssh\\GiteeKey\\id_rsa
PreferredAuthentications publickey
5、最后通过命令行来验证各自的结果
# github 平台验证方式
ssh -T git@github.com
# gitee平台验证方式
ssh -T git@gitee.com
显示下面的结果表示设置成功

本文档详细介绍了如何在Windows操作系统中,为github和gitee两个不同的代码托管平台配置多个SSH密钥,以避免密钥覆盖问题。步骤包括生成SSHKey、设置配置文件以及验证配置是否成功。同时,提供了具体的操作截图和命令行示例,确保用户能够正确配置各自的SSHKey,实现对多个平台的无缝切换。
1083

被折叠的 条评论
为什么被折叠?



