客户端配置多个git远程仓库的ssh-Key切换
2016-11-15 10:49
399 查看
目前的Git仓库如github都是通过使用SSH与客户端连接,如果只是固定使用单个git仓库的单个用户
(first),生成生成密钥对后,将公钥保存至github,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配对的。
但是在实际工作中,一般公司内部都有自己的独立的git仓库(gitlab.xxx.com),于是就会存在这样的情
况,在github有私人的账号first,公司的gitlab中的工作账号sencord,first和second因为环境不同,必须配置不同的username和email。所以必须对每个账号分别生成独立的公钥密钥对。在链接到github时,使用first的公钥密钥对,链接到公司内的gitlab时,使用second的公钥密钥对。假设first的密钥文件为id_rsa,second的密钥文件为id_rsa_second.
在默认情况下,ssh总是使用id_rsa密钥文件进行链接,这样对于second账号的认证自然是不通过的,
不过,要实现多帐号下的SSH key切换在客户端做一些配置即可。
首先cd到~/.ssh 使用 ssh-keygen -t -rsa -C ‘second@mail.com’(为你工作账号的邮箱地址) 生成新的
SSH key:id_rsa_second
[plain] view
plain copy
ssh-keygen -t rsa -C 'second@mail.com' -f id_rsa_second
生成后将新的ssh public key添加到内部的gitlab仓库中, 然后在~/.ssh 目录下创建config文件,该文件用于配置私钥对应的服务器。内容如下:
[plain] view
plain copy
Host gitlab.xxx.com ##可以随意命名,链接时使用这个名字
HostName gitlab.xxx.com
User git
Port 22
IdentityFile ~/.ssh/id_rsa_second
执行
[plain] view
plain copy
git clone git@gitlab.xxx.com:second/test.git
时会使用second的id_rsa_second与服务器进行连接.而链接非gitlab.xxx.com服务器时则会使用first的密钥进行链接。至此,大功告成!
注意:git根据配置文件的user.email来获取git帐号显示author信息,所以对于多帐号用户一定要
记得将user.email改为相应的email(second@mail.com)。
(first),生成生成密钥对后,将公钥保存至github,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配对的。
但是在实际工作中,一般公司内部都有自己的独立的git仓库(gitlab.xxx.com),于是就会存在这样的情
况,在github有私人的账号first,公司的gitlab中的工作账号sencord,first和second因为环境不同,必须配置不同的username和email。所以必须对每个账号分别生成独立的公钥密钥对。在链接到github时,使用first的公钥密钥对,链接到公司内的gitlab时,使用second的公钥密钥对。假设first的密钥文件为id_rsa,second的密钥文件为id_rsa_second.
在默认情况下,ssh总是使用id_rsa密钥文件进行链接,这样对于second账号的认证自然是不通过的,
不过,要实现多帐号下的SSH key切换在客户端做一些配置即可。
首先cd到~/.ssh 使用 ssh-keygen -t -rsa -C ‘second@mail.com’(为你工作账号的邮箱地址) 生成新的
SSH key:id_rsa_second
[plain] view
plain copy
ssh-keygen -t rsa -C 'second@mail.com' -f id_rsa_second
生成后将新的ssh public key添加到内部的gitlab仓库中, 然后在~/.ssh 目录下创建config文件,该文件用于配置私钥对应的服务器。内容如下:
[plain] view
plain copy
Host gitlab.xxx.com ##可以随意命名,链接时使用这个名字
HostName gitlab.xxx.com
User git
Port 22
IdentityFile ~/.ssh/id_rsa_second
执行
[plain] view
plain copy
git clone git@gitlab.xxx.com:second/test.git
时会使用second的id_rsa_second与服务器进行连接.而链接非gitlab.xxx.com服务器时则会使用first的密钥进行链接。至此,大功告成!
注意:git根据配置文件的user.email来获取git帐号显示author信息,所以对于多帐号用户一定要
记得将user.email改为相应的email(second@mail.com)。
相关文章推荐
- 配置多个git远程仓库的ssh-Key切换
- 配置多个git远程仓库的ssh-Key切换
- 配置多个git远程仓库的ssh-Key切换
- 配置多个git远程仓库的ssh-Key切换
- 配置多个git远程仓库的ssh-Key切换
- 一个git客户端配置多个git远程仓库账号
- 本地Git仓库与远程Github仓库的SSH连接配置
- 如果不配置SSH公钥使用git远程仓库会怎么样?
- windows下多个git账号配置并且将本地仓库项目推送到远程仓库
- git配置后连接远程仓库(github)时提示Permission denied
- windows下多个git账号配置并且将本地仓库项目推送到远程仓库
- 解决git 使用SSH 使用远程仓库时候需要密码
- 配置本地git链接远程仓库
- Git采用SSH协议创建远程仓库
- git提交代码到远程仓库遇到的问题并且关于ssh密钥的研究
- jenkins安装与配置maven+git\svn+ssh实现远程自动部署
- windows下多个git账号配置并且将本地仓库项目推送到远程仓库
- windows下多个git账号配置并且将本地仓库项目推送到远程仓库
- Git从使用非默认SSH端口的远程仓库上克隆 scp 非默认端口
- 如何通过ssh与Git远程仓库建立加密连接