管理多个 ssh key(转载)

转自:http://fy98.com/2014/09/09/mutiple-ssh-keys/

以前只使用一个 ssh key 在github上提交代码,由于工作原因,需要再添加一个ssh key在公司的 gitlab上提交代码,下面记录下配置过程,防止遗忘。说明下我的环境是 Win7 + msysgit + GitBash, 相信 *nux + bash 也是同样的道理。
生成并添加第一个ssh key
第一次使用ssh生成key,默认会在用户~(根目录)下生成 id_rsa, id_rsa.pub 2个文件;所以需要添加多个ssh key时也会生成对应的私钥和公钥。
1

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

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

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

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


目录结构如下:

添加私钥
12

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

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

$ ssh-agent bash

然后再运行ssh-add命令。
12345

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

修改配置文件
在 ~/.ssh 目录下新建一个config文件
1

touch config

添加内容:
1234567891011

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

测试
1

$ ssh -T git@github.com

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 123,209评论 18 134
  • mac坏了重装了下系统,然后各种环境都要重新配简直要哭...吸取教训,把环境配置等需要注意的相关东东记录在这里.....
    Azen阅读 1,912评论 1 0
  • GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界...
    YHWXQ简简单单的生活阅读 84,896评论 3 37
  • 过去的价值不代表未来, 所以每天都要努力!
    袁益君阅读 55评论 1 2
  • 今天的实例是什么? 是一个前端常见的tab标签页切换效果(效果预览如下) 涉及指令 ng-controller n...
    我是灰灰的小跟班阅读 101评论 0 0