一、实现Gitee和GitHub是由同一个邮箱注册的,并且用该邮箱生成一个SSH-Key,用这个SSH-Key分别连接上Gitee和GitHub
1、执行完ssh-keygen命令后,会在C盘用户目录下生成.ssh/id_rsa和.ssh/id_rsa.pub
$ ssh-keygen -t rsa -C 'xxxxx@email.com'
id_rsa:私钥文件 id_rsa.pub:公钥文件 known_hosts文件在下面会讲到
2、在同级目录下,新建config文件,可以直接新建文本文档,将其后缀一同删除,改名为config
3、打开config文件进行编辑,添加内容如下:
# gitee Host git.oschina.net User xxxxx@email.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa Port 443 # github Host ssh.github.com User xxxxx@email.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa Port 443
4、查看生成的SSH公钥,并将这个SSH公钥分别设置到Gitee和GitHub中
cat ~/.ssh/id_rsa.pub
将显示的SSH公钥复制粘贴到Gitee和Github中添加设置,就不讲怎么添加了。
5、测试连接
$ ssh -T git@gitee.com $ ssh -T git@github.com
访问不同IP机器时会在known_hosts文件中保存每一次访问连接的信息。
known_hosts:访问过的机器的公钥,第一次ssh 其他机器时如果有权限访问,会提示是否保存信息,下次会校验访问该机器的公钥与known_hosts中的是否一致,如果不一致则不能登录过去。
分别出现以下结果则说明访问连接成功。
二、实现Gitee和GitHub是由同一个邮箱注册的,并且用该邮箱生成两个SSH-Key,分别用这两个SSH-Key连接上Gitee和GitHub
可以参照:Gitee 帮助中心:Git配置多个SSH-Key;码云(Gitee.com)帮助文档 V1.2
1、与前面的差不多,无非就是生成了两个不同的Key
$ ssh-keygen -t rsa -C 'xxxxx@email.com' -f ~/.ssh/gitee_id_rsa $ ssh-keygen -t rsa -C 'xxxxx@email.com' -f ~/.ssh/github_id_rsa
前面第一种情况是默认生成id_rsa,这里对两个不同的SSH_Key对应Gitee和GitHub起了不同的名字,后续操作与前面第一种情况相同,另外切记相对应的文件名称要统一,配置文件中私钥文件名要相对应IdentityFile ~/.ssh/gitee_id_rsa、IdentityFile ~/.ssh/github_id_rsa。
另外是config配置文件的相关说明:
Git在本地提交到远程库上时,会读取ssh的公钥秘钥信息。
如果在~/.ssh/目录下有对应config配置文件则会优先读取config的配置信息,否则直接读取id_rsa和id_rsa.pub
config配置文件 (~/.ssh/config):
Host xxx #ssh别名 HostName gitlab.xxx.com/IP #要连接的gitlab地址或主机名 User xxx@xxx.com #账号,要与git config的email对应 IdentityFile ~/.ssh/id_rsa #要使用的ssh私钥
通过config文件可以管理多个ssh会话。通过Host别名也可以直接[ssh 别名]登录到其它机器上
原文地址:Git使用同一个邮箱生成同一个公钥SSH-Key并配置连接Gitee和GitHub,数次失败并尝试亲测可行!
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。
精彩评论