git 配置多个SSH-Key
stefanzhlg 发表于2年前
git 配置多个SSH-Key
  • 发表于 2年前
  • 阅读 8767
  • 收藏 197
  • 点赞 10
  • 评论 14

IBM Bluemix免费试用!>>>   

摘要: 我们在日常工作中会遇到公司有个gitlab,还有些自己的一些项目放在github上。这样就导致我们要配置不同的ssh-key对应不同的环境。

     我们在日常工作中会遇到公司有个gitlab,还有些自己的一些项目放在github上。这样就导致我们要配置不同的ssh-key对应不同的环境。下面我们来看看具体的操作:

 

1,生成一个公司用的SSH-Key     

$ ssh-keygen -t rsa -C "youremail@yourcompany.com” -f ~/.ssh/id-rsa

 

在~/.ssh/目录会生成id-rsa和id-rsa.pub私钥和公钥。 我们将id-rsa.pub中的内容粘帖到公司gitlab服务器的SSH-key的配置中。

 

2,生成一个github用的SSH-Key

$ ssh-keygen -t rsa -C "youremail@your.com” -f ~/.ssh/github-rsa

在~/.ssh/目录会生成github-rsa和github-rsa.pub私钥和公钥。 我们将github-rsa.pub中的内容粘帖到github服务器的SSH-key的配置中。

 

3,添加私钥

$ ssh-add ~/.ssh/id_rsa $ ssh-add ~/.ssh/github_rsa

如果执行ssh-add时提示"Could not open a connection to your authentication agent",可以现执行命令:

$ ssh-agent bash

然后再运行ssh-add命令。

# 可以通过 ssh-add -l 来确私钥列表
$ ssh-add -l
# 可以通过 ssh-add -D 来清空私钥列表
$ ssh-add -D

 

 

4,修改配置文件

在 ~/.ssh 目录下新建一个config文件

touch config

添加内容:

# gitlab
Host gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa
# github
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_rsa

5,目录结构

6,测试

$ ssh -T git@github.com

输出

Hi stefzhlg! You've successfully authenticated, but GitHub does not provide shell access.

就表示成功的连上github了.也可以试试链接公司的gitlab.

 

 

 

共有 人打赏支持
stefanzhlg
粉丝 56
博文 110
码字总数 85559
作品 4
评论 (14)
donhui
会不会一不小心把公司的代码push到github上
stefanzhlg

引用来自“donhui”的评论

会不会一不小心把公司的代码push到github上
不会的,项目所在目录下会有.git/config配置文件,会push对应的git项目。
紫电清霜
大赞,用的上:smile:
wht248
以前一直想搞一下没时间,今天有现成的不错1379
CavinTang
$ ssh -T git@github.com
还可以省去git@,修改配置config
# gitlab
Host gitlab.com
HostName gitlab.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

$ssh -T gitlab.com
在访问仓库git仓库时可以用地址 ssh://gitlab.com/name/xxx.git

具体可以根据自己的习惯来配置
小红书
注意host和host name

还会碰上类似两个git@osc 两个github这种多账号的奇葩情况…
nidongwo-
github上也有这个,我已经开始使用了 https://gist.github.com/jexchan/2351996
西南茂
就生成一对密钥不就够用了吗,把公钥放服务器,私钥在自己机器,git项目里面指定remote就可以啊
snowdream
很不错的教程,感谢。
单行道
大赞,用的上:smile:
庄生dream
开源中国的码云的Host 和 HostName ,填什么?32
stefanzhlg

引用来自“庄生dream”的评论

开源中国的码云的Host 和 HostName ,填什么?32

http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#ssh-keys
blessjq
3,添加私钥
这里的私钥是什么东西,因为按照您前两个步骤,已经生成了两对私钥和公钥,怎么到了这一步还需要再增加私钥?这个私钥和上面两步中生成的私钥有啥区别,是干嘛用的?id_rsa_github这个东西是啥,你也没说
stefanzhlg

引用来自“blessjq”的评论

3,添加私钥
这里的私钥是什么东西,因为按照您前两个步骤,已经生成了两对私钥和公钥,怎么到了这一步还需要再增加私钥?这个私钥和上面两步中生成的私钥有啥区别,是干嘛用的?id_rsa_github这个东西是啥,你也没说
不好意思,文中有些小问题(秘钥的名称没有统一:id_rsa_github应改成github_rsa),已修正。
私钥是用于解密服务器端传过来的加密串的。第三部的意义:参考https://segmentfault.com/q/1010000000835302
×
stefanzhlg
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: