github/gitlab 管理多个ssh key

以前只使用一个 ssh key 在github上提交代码,由于工作原因,需要再添加一个ssh key在公司的 gitlab上提交代码,下面记录下配置过程,防止遗忘。
说明下我的环境是 Win7 + msysgit + GitBash, 相信 *nux + bash 也是同样的道理。

生成并添加第一个ssh key

第一次使用ssh生成key,默认会在用户~(根目录)下生成 id_rsa, id_rsa.pub 2个文件;所以需要添加多个ssh key时也会生成对应的私钥和公钥。

$ ssh-keygen -t rsa -C "youremail@yourcompany.com"

在Git Bash中执行这条命令一路回车,会在 ~/.ssh/ 目录下生成 id_rsa 和 id_rsa.pub 两个文件,用文本编辑器将 id_rsa_pub 中的内容复制一下粘贴到github(gitlab)上。

生成并添加第二个ssh key

第一种: $ ssh-keygen -t rsa -C "youremail@gmail.com" -f id_rsa_github第二种: $ ssh-keygen -t rsa -C "youremail@gmail.com"$ id_rsa_github //输入文件名称[如果不能成功请手动到.ssh目录下新建 ***.pub 和 ***]

注意不要一路回车,要给这个文件起一个名字, 比如叫 id_rsa_github, 所以相应的也会生成一个 id_rsa_github.pub 文件。

目录结构如下:


添加私钥
git自动把新生成的私钥写到known_hosts中

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

如果执行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

修改配置文件

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

touch config

添加内容:(此处新加你的私钥目录和私钥对应的HostName)

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

测试

$ ssh -T git@github.com

输出
Hi user! You've successfully authenticated, but GitHub does not provide shell access. 就表示成功的连上github了

最新文章

  1. Bootsrap基本应用
  2. HTTP状态码(2xx,3xx,4xx,5xx)
  3. BlockingQueue使用
  4. SQLSERVER分页查询
  5. Form居中显示
  6. <转>lucene3.0 自学吧 四 termdocs
  7. Angular 1.2.27在IE7下的兼容问题
  8. 离线安装maven,重新打开eclipse报错处理方法
  9. My Eclipse 自动提示
  10. 【swift】ios中生成二维码
  11. MATLAB三点确定圆
  12. Oracle中的AWR,全称为Automatic Workload Repository
  13. css note
  14. 一切为了解决隐私问题,绿洲实验室Ekiden协议介绍
  15. Data Partitioning Guidance
  16. QT5中QByteArray转QString中文乱码
  17. TCP 的那些事儿(下)(转)
  18. java-switch语句
  19. Python 实现图片上表格的写入
  20. Tomcat源码分析——server.xml文件的加载

热门文章

  1. Django搭建及源码分析(一)
  2. POJ C++程序设计 编程题#3 编程作业—文件操作与模板
  3. windows下如何修改远程登录端口
  4. c# TextReader/TextWriter 的类
  5. jquery click & get value of attributes of a href
  6. redis 配置文件解读
  7. arcgis api for javascript 3.16开发(一)
  8. 【转】Spark性能测试报告
  9. SharePoint ribbon icons disappeared(网站顶部Top bar 齿轮图标,以及编辑模式下Ribbon中Icon消失)
  10. Flask Web Development —— Web表单(上)