Git下管理多个ssh key

 

    对于程序员来说,可能由于私有库限制,网站访问速度及备份等原因将代码放在不同的代码托管平台,比如程序员交友网站Github,Gitlab以及国内的码云等,那么我们上传代码时就需要对不同的平台的ssh key进行管理,否则一个ssh的私钥是不可能在多个平台通用的,针对这种情况,解决方法如下:

  1. 生成两个key:
    使用命令ssh-keygen -t rsa -C “Your Email Address” -f 'Your Name',-f后面指定生成key的文件名,如果没有指定新的名字,那么每次ssh-keygen生成的名字相同,就会发生覆盖同名文件的情况的发生。

  2. 添加生成的公钥到对应服务器的ssh kyes管理设置中:

  3. 修改配置文件:

    在~/.ssh目录下新建一个config文件并添加以下内容

# oschina
Host git.oschina.net
HostName git.oschina.net
PreferredAuthentications publickey
IdentityFile ~/.ssh/oschina
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa <br>

    其中要注意Host及HostName填对应的托管网址,IdentityFile及我们之前生成的私钥,要与我们在网站上添加的公钥一一对应,切勿搞混!!!     最后就是测试是否成功,测试方法如下:

    oschina的测试方法: ssh -T git@gitee.com显示“Hi,‘Your Name’! ...”代表设置成功
    github的测试方法: ssh -T git@github.com 显示“Hi,‘Your Name’! ...”代表设置成功