文档章节

git 配置多个SSH-Key

stefanzhlg
 stefanzhlg
发布于 2015/11/12 15:15
字数 397
阅读 17025
收藏 210

     我们在日常工作中会遇到公司有个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

stefanzhlg

粉丝 63
博文 110
码字总数 85559
作品 4
浦东
程序员
加载中

评论(16)

k
kyzgsky
一台本机配置了2个github账号,key也是生成了2对,可是总是默认读取第一个配置 求解。因为都是github上面的项目,所以 config 文件配置的hostname 都是 github.com 但是 host 一个配置的是git 另一个配置的是git1
h
hard_name
非常感谢,网上的好多教程没有添加私钥这步,结果怎么都找不到对应的私钥。总是出现Permission denied(public key)。利用$ ssh -v git@github.com 才发现找不到对应的私钥,所以匹配不上。
stefanzhlg
stefanzhlg

引用来自“blessjq”的评论

3,添加私钥
这里的私钥是什么东西,因为按照您前两个步骤,已经生成了两对私钥和公钥,怎么到了这一步还需要再增加私钥?这个私钥和上面两步中生成的私钥有啥区别,是干嘛用的?id_rsa_github这个东西是啥,你也没说
不好意思,文中有些小问题(秘钥的名称没有统一:id_rsa_github应改成github_rsa),已修正。
私钥是用于解密服务器端传过来的加密串的。第三部的意义:参考https://segmentfault.com/q/1010000000835302
blessjq
blessjq
3,添加私钥
这里的私钥是什么东西,因为按照您前两个步骤,已经生成了两对私钥和公钥,怎么到了这一步还需要再增加私钥?这个私钥和上面两步中生成的私钥有啥区别,是干嘛用的?id_rsa_github这个东西是啥,你也没说
stefanzhlg
stefanzhlg

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

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

http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#ssh-keys
庄生dream
庄生dream
开源中国的码云的Host 和 HostName ,填什么?32
单行道
单行道
大赞,用的上:smile:
snowdream
snowdream
很不错的教程,感谢。
西南茂
西南茂
就生成一对密钥不就够用了吗,把公钥放服务器,私钥在自己机器,git项目里面指定remote就可以啊
cisiqo
cisiqo
github上也有这个,我已经开始使用了 https://gist.github.com/jexchan/2351996
解决git本地多ssh key的问题

最近手上一个项目需要使用到一台服务器作为专用的部署服务器,在实施过程中遇到了一些问题,具体如下: 1. 服务器的ssh默认端口和项目git仓库的ssh端口不一致2. 部署需要使用项目提供的ssh k...

aaao
2016/03/21
0
0
GitHub账户设置多个SSH Keys

博客原文传送门:GitHub账户设置多个SSH Keys 针对不同的git代码库配置不同的的git name, email, 以及相应的ssh公私钥。满足同一台电脑或是同一个git 账户的不同用户提交。尤其适用于在公用电...

willheng
2017/11/30
0
0
Git - 生成ssh key步骤以及如何clone所有的远程分支

这里以配置github的ssh key为例: 1. 配置git用户名和邮箱 设置Git的user name和email: $ git config --global user.name "用户名" $ git config --global user.email "邮箱" 在config后加上...

君满楼001
2017/11/30
0
0
多账号配置SSH

博客地址 : 多账号配置SSH 简书地址 : 多账号配置SSH 快捷说明 熟练者忘记查询, 详细解析在下面模块 背景介绍 为什么要配置SSH 作为一个正常上班搬砖程序猿,Git 应该是目前主流的代码管理工...

__小___东邪___
2017/12/15
0
0
多个git托管平台同时使用时SSH Key的生成及添加

使用一个邮箱注册多个git代码托管平台,如:GitHub、Gitlab、码云等。在用户端,生成对应平台的的 时,会生成对应的 及 公钥文件(默认的密钥文件名取决于算法,此处默认使用RSA算法加密),...

Anyers
06/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ERC1155实践|区块链游戏的平行宇宙和为此而生的Enjin钱包

1 摘要 恩金(Enjin)花了大半年的时间一直在完善ERC-1155这个通证协议,毫不夸张地说,该标准是现有以太坊上最适用于游戏资产的通证标准,将主流游戏中道具涉及到的一切操作经过高度抽象之后...

HiBlock
20分钟前
0
0
Oracle发布开源的轻量级 Java 微服务框架 Helidon

近日,Oracle推出了一个新的开源框架Helidon,该项目是一个用于创建基于微服务的应用程序的Java库集合。和Payara Micro、Thorntail(之前的WildFly Swarm)、OpenLiberty、TomEE等项目一样,...

关注公众号_搜云库_每天更新
26分钟前
0
0
启动线程以及安全终止线程

启动 使用start()方法可以启动线程。 start()方法的含义是告知线程规划器线程已初始化完毕,可以分给这个线程时间片了(执行run()方法)。 安全终止线程 示例代码 import java.util.concurr...

karma123
32分钟前
1
0
Python+OpenCV 图像风格迁移(模仿名画)

现在很多人都喜欢拍照(自拍)。有限的滤镜和装饰玩多了也会腻,所以就有 APP 提供了模仿名画风格的功能,比如 prisma、versa 等,可以把你的照片变成 梵高、毕加索、蒙克 等大师的风格。 这...

crossin
37分钟前
1
0
karabiner json语法

karabiner json语法 to_if_alone 如果同时制定了to, 那么to对应的key必须是非可见字符,例如control,shift或者command, 为什么呢? If to events are specified, to events are released befo...

黄威
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部