Git配置多个SSH-Key

  因工作原因,在github、gitee和自己的服务器之间反复横跳,他妈的
  因此需要在本地配置多个公钥,免去每次同步项目都要输密码的麻烦

  首先生成三个key在本地

1
2
3
4
5
ssh-keygen -t rsa -C 'x@xxin.xyz' -f ~/.ssh/mygit_id_rsa #连接个人服务器使用

ssh-keygen -t rsa -C 'x@xxin.xyz' -f ~/.ssh/gitee_id_rsa #连接gitee使用

ssh-keygen -t rsa -C 'x@xxin.xyz' -f ~/.ssh/github_id_rsa #连接github使用

  默认在目录C:\Users\.ssh可以看到

  然后在这个目录下创建名为config的文件,并填入如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# mygit
Host 192.168.1.1 #服务器地址或者域名
HostName 192.168.1.1
PreferredAuthentications publickey
IdentityFile ~/.ssh/mygit_id_rsa #key路径

# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa

# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

  然后把对应的.pub文件填入到git服务器,如何添加到到自己的git服务器要因情况而定,故不再展示


  测试是否能连通服务器

1
2
ssh -T git@gitee.com
ssh -T git@github.com

  补充一下我的新电脑在使用git时出现的问题,clone项目时反复提示Could not resolve host: gitee.com,任何域名都ping不通,但是直接pingIP地址又是没问题的,疑似是git bash无法解析域名,在网上查阅了很多文章,大都是说修改host文件,于是抱着试一试的心态给gitee添加了手动解析,果不其然,没有一丁点效果

1
2
3
4
ping gitee 
# 将会提示Ping request could not find host gitee.com. Please check the name and try again.
ping 212.64.63.190
# IP地址是没问题的

  然后我以为是DNS的问题,但是后来发现在cmd命令窗口中可以ping通域名,也就是说DNS是没问题的,最后的最后,在无意间,将git bash的编码由uf8修改为gbk之后就可以ping通域名了

  但是后遗症是无法正常读取utf8的中文,总起来说就是说utf8编码无法解析域名,gbk可以解析域名,但是无法正常显示utf8编码的中文,他妈了个蛋的

  后来根据网上中文乱码的文章,都无济于事
  最后解决的方案,在控制面板 → “时钟和区域” → “区域” → “管理” → “更改系统区域设置” → 选中“使用Unicode UTF-8提供全球语言支持”,然后修改git bash的编码格式为utf-8,重启就可以了