在实际工作中,常常会遇到多个git帐号(即多个远程仓库)的情况,这时候如果只有一个SSH-key则无法满足现有要求,故需要配置一下多ssh-key的情况,本事例以github.com和git.oschina.net两个帐号为例,进行详细操作说明。(本文以windows10操作系统为例)
1.生成github.com和git.oschina.net对应的私钥和公钥
切换到git默认访问的.ssh目录下(本文默认路径为c/Users/landyChris/.ssh)
1.1生成github.com私钥和公钥
执行命令:
ssh-keygen -t rsa -C xxxx@hotmail.com
创建github对应的sshkey,命名为id_rsa_github,密码 123456(密码可以为空)
1.2生成git.oschina.net私钥和公钥
以同样的方式生成,邮箱的地址可以相同,也可以不同,看自己具体的git仓库的帐号而定。
由以上操作后,.ssh目录下含有以下文件。
共有4个文件(id_rsa和id_rsa.pub为之前安装git时候产生的公钥和密钥文件),分别是github和oschina的公钥和密钥文件。
2.分别把github对应的公钥和oschina对应的公钥上传到服务器
2.1 github
选择account-->setting进行配置,如下图所示:
找到SSH AND GPG KEYS菜单,点击New SSH Key按钮,如下图所示:
然后输入上面步骤生成的公钥,
2.2 oschina
同理在https://gitee.com/profile/sshkeys 上即可设置oschina的公钥,如下图所示步骤。
3.在.ssh目录下创建config文本文件并完成相关配置(重点)
每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostName和IdentityFile两个属性即可
Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如:
Host mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为mygithub
git clone git@mygithub:landy8530/hello-world
HostName 这个是真实的域名地址
IdentityFile 这里是id_rsa的地址
PreferredAuthentications 配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
User 配置使用用户名
配置事例如下:
# 配置github.com
Host github.com
HostName github.com
IdentityFile C:\\Users\\landyChris\\.ssh\\id_rsa_github
PreferredAuthentications publickey
User landy8530
# 配置git.oschina.net
Host git.oschina.net
HostName git.oschina.net
IdentityFile C:\\Users\\landyChris\\.ssh\\id_rsa_oschina
PreferredAuthentications publickey
User landy8530
4.执行测试命令(会自动生成known_hosts文件把私钥配置进文件中)
测试github:
ssh -T git@github.com
测试oschina:
ssh -T git@git.oschina.net
出现以上信息,说明两个git帐号已经配置成功!
5.多账号操作事例
测试成功后,就可以在电脑上使用git多账号进行同时互不影响的操作了。
例如:clone gitbub上的hello-world的一个demo事例:https://github.com/landy8530/hello-world.git
操作如截图所示:
同理:clone oschina上的hello-world的一个demo事例:https://git.oschina.net/lylyx/hello-world.git