Git配置多个SSH Key


1、查看git版本

git --version #验证git是否安装成功,输出版本号就代表安装成功

2、配置全局用户名和邮箱

    安装完成有配置一下全局的用户名和邮箱,输入如下命令:

git config --global user.name "goobos"
git config --global user.email "goobos@demo.com"

     使用如下命令可以取消全局设置:

git config --global --unset user.name
git config --global --unset user.email

3、生成SSH Key

    问题说明:

    当有多个git账号的时候,比如一个github,用于自己进行一些开发活动,再来一个gitlab,一般是公司内部的git。这两者你的邮箱如果不同的话,就会涉及到一个问题,生成第二个git的key的时候会覆盖第一个的key,导致必然有一个用不了。或者同是github上,多用户登录。   

解决方法

我们可以在【~/.ssh】目录下新建一个config文件配置一下,就可以解决问题

例如:

# gitlab
Host git.demo.com  
HostName git.demo.com #换成自己git服务器地址
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitdemo
User goobos  #前面定义的用户名

# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
User goobos  #前面定义的用户名

配置文件说明:

每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostNameIdentityFile两个属性即可
Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令

例如:

Host goobosgit 这样定义的话,命令如下,即git@后面紧跟的名字改为goobosgit
git clone git@goobosgit:goobos/demo.git
就相当于你配置的HostName真正的域名,映射成了Host后面的配置的名字

HostName                      #这个是真实的域名地址
IdentityFile                  #这里是id_rsa的地址
PreferredAuthentications    #配置登录时用什么权限认证--可设置publickey,password publickey,keyboard-interactive等
User              #配置使用用户名


具体步骤:

    1)、生成用户目录下的.ssh文件夹下运行生成秘钥命令

#生成demo服务器秘钥
ssh-keygen -t rsa -C "goobos@demo.com"
在输入文件名及路径的时候,生成的密钥命名为【id_rsa_gitdemo】


#生成github服务器秘钥
ssh-keygen -t rsa -C "goobos@github.com"
在输入文件名及路径的时候,生成的密钥命名为【id_rsa_github】

秘钥生成后会在~/.ssh下生成:id_rsa_gitdemo、id_rsa_gitdemo.pub;id_rsa_github、id_rsa_github.pub 4个文件.pub是对应的公钥,需要上传到github或你自己服务器上去的

    2)、执行ssh-agent命令

    ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程

$ ssh-agent -s
$ ssh-add ~/.ssh/id_rsa_gitdemo
$ ssh-add ~/.ssh/id_rsa_github

    如果出现“Could not open a connection to your authentication agent”错误提示

$ ps aux | grep ssh
$ kill -9 线程号

$ exec ssh-agent bash
$ eval ssh-agent -s

#然后再执行
$ ssh-add ~/.ssh/id_rsa_gitdemo
$ ssh-add ~/.ssh/id_rsa_github


    3)、添加公钥到远程git服务器

    4)、测试是否配置成功

$ ssh -T git@github.com
$ ssh -T git@demo.com



如果是腾讯的工蜂git需要额外设置

Host git.code.tencent.com
User goobos
IdentityFile ~/.ssh/id_rsa_tencent
HostKeyAlgorithms=+ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa


注:本文转载自谷泊网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。
上一篇 下一篇

分享

最新加入

最新评论