转载自:https://w3ctrain.com/2016/03/06/mutiple-ssh-key/

ps:此文基于你已经能够正常的生成sshkey

对于sshkey的功能这里就不多做介绍了,本文介绍的是一个更高级的功能:同一台电脑配置多个sshkey,方便本机在和不同的服务器(不同的项目之间)通信的时候自动切换账号

配置多个公钥

# 以下两种任选一种即可
# 1. 生成新的ssh key并命名为`custom_rsa`
ssh-keygen -t rsa -C "your_email@email.com" -f ~/.ssh/custom_rsa # 2. 或 打以下命令后,在询问时输入名称
ssh-keygen -t rsa -C "your_email@email.com"

修改 ~/.ssh 下的 config 文件

# desc: github (github@email.com)
Host github.com
Hostname github.com
User git
PreferredAuthentications publickey
Identityfile ~/.ssh/github # desc: my_server_user (your_email@email.com)
Host your_domain_name_or_ip
HostName your_domain_name_or_ip
User git
IdentityFile ~/.ssh/custom_rsa # 以上各字段说明:
# Host:主机名字,不能重名
# HostName:主机所在域名或IP
# User:服务器上的用户名
# PreferredAuthentications:不填此行的话,如果pubkey验证不通过可以用密码方式;填了`publickey`只能通过公钥验证的方式
# IdentityFile:私钥路径

情景

我们有两个 github 账号,A 和 B 我们如何让两个 ssh 不互相影响,并且 git 操作时能智能匹配私钥?

解决方案:
上面的 Host 字段其实是任意的,git 操作时会有一个映射,将 Host 映射到目标域名或 ip (HostName)

所以我们可以这么干:

Host a.github.com
Hostname github.com
User git
Identityfile ~/.ssh/a_github_rsa Host b.github.com
HostName github.com
User git // 用户名称
IdentityFile ~/.ssh/b_github_rsa

注意:公私钥命名要对应

然后 ssh 的地址要更改一下,比如 A 账号的 repo 仓库原本的地址是

git@github.com:A/repo.git,配置了ssh 后,我们使用

git@a.github.com:A/repo.git

到这里就基本完成了(记得把公钥复制到远端仓库),使用ssh -T a.github.com测试一下吧

同一台电脑的多ssh 配置的更多相关文章

  1. 两台电脑使用ROS通讯

    一.ROS分布式多机通讯简介 ROS是一种分布式软件框架,节点之间通过松耦合的方式组合,在很多应用场景下,节点可以运行在不同的计算平台上,通过Topic,Service通信. 但是各个节点只能共同拥有 ...

  2. 【Git】一台电脑与多个分布式版本管理平台连接

    六. 一台电脑与多个版本控制平台 1. 一台电脑同时通过ssh连接github和码云gitee 打开git bash 进入.ssh cd ~/.ssh 分别生成两个平台的公钥和私钥 $ ssh-key ...

  3. 一台电脑上配置多个git的ssh key

    前几天公司的代码库全部迁移到了阿里云上,在配置git的ssh key的时候遇到了一个问题,那就是自己的密钥在添加时提示已经存在,原来是自己的个人账号上已经添加过这个密钥了,公司分配的账号就不能再添加这 ...

  4. git学习笔记:一台电脑上配置两个git账户

    如何在一台电脑上配置两个git账户,现在云端仓库很多,有开源中国的 gitee.com 微软的 github.com 还有 gitlab.com 和 bitbucket.org 等等,下面是具体步骤 ...

  5. 同一台电脑关于多个SSH KEY管理

    运用shh -T -v git@github.com查看具体出错信息,再根据信息来调试    原文链接: http://yijiebuyi.com/blog/f18d38eb7cfee860c117d ...

  6. 一台电脑如何管理多个ssh key

    目录 一.生成ssh key 1.1 生成密钥(必须) 1.2 设置路径 (可选) 1.3 指定密语字符串(可选) 二.设置ssh key的代理 2.1. 首先查看代理 2.2. 添加私钥 三.添加公 ...

  7. (转)如何在一台电脑上开启多个tomcat 和配置让系统识别哪个具体的tomcat

    大家基本上都只在一台电脑上面启动一个Tomcat,而启动多个Tomcat会提示报错等相关故障.而假如调试负载均衡及集群的时候,需要在一台电脑上面开启多个Tomcat,那么怎么开启呢? 方法/步骤 首先 ...

  8. 一台电脑上同启动两个Tomcat的方式,windows/Linux配置。

     安装两个jdk,一个JDK路径在:C:\ProgramFiles (x86)\Java\jdk1.7.0_25,另外一个JDK的路径在E:\UCMSServer\j2sdk 在环境变量里并设置J ...

  9. 同一台电脑使用多个ssh连接git,出现权限不够的问题

    在本地使用多个ssh连接git时出现如下错误: Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 当一台电脑上同时使用多个ssh k ...

随机推荐

  1. STL的其他用法(adjacent_find, find_first_of, sort_heap, merge, binary_search)总结

    2017-08-20 17:26:07 writer:pprp 1.adjacent_find() 下面是源码实现: template <class ForwardIterator> Fo ...

  2. spring @RequestMapping注解技巧

    @RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一.这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上. 下面我们看看,@Request ...

  3. JAXB和XStream比较

    转自:https://www.cnblogs.com/tang9139/p/4825610.html http://www.cnblogs.com/wlsblog/p/7452882.html 这两东 ...

  4. Java Collections Framework 汇总

    1. Java Collections Framework Java集合框架概览 2. Java Collections Framework 之 RandomAccess接口 3. 关于ArrayLi ...

  5. 实现基本的Ajax和Json请求

    前面已经封装好了一个方法ajax(),通过这个方法可以实现Ajax请求,接下来就是给出 例程来测试这个方法和实现简单的功能.   视图的部分代码如下: <body> <div> ...

  6. 读懂 ECMAScript 规格

    概述 规格文件是计算机语言的官方标准,详细描述语法规则和实现方法. 一般来说,没有必要阅读规格,除非你要写编译器.因为规格写得非常抽象和精炼,又缺乏实例,不容易理解,而且对于解决实际的应用问题,帮助不 ...

  7. Angular for TypeScript 语法快速指南 (基于2.0.0版本)

    引导 import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; platformBrowserDynami ...

  8. MVVM模式的3种command总结[2]--RelayCommand

    MVVM模式的3种command总结[2]--RelayCommand RelayCommand本来是WPF下面用的一种自定义的command,主要是它用到了事件管理函数,这个SL下面是没有的.不过这 ...

  9. Ubuntu相关命令

    此贴包含自己搭建网站以及自学Ubuntu遇到的相关命令,方便以后查看,故相关帖子整理记录在此! 用户切换 当前用户切换到root用户,只需要执行sudo su即可. root用户切回user用户,只需 ...

  10. MYSQL freedata 外联接

    主要是解决,不同生产系统里面,有不同的数据库. SQL 又不能夸系统查询表. 只能在一个系统里,可以跨不同的数据库查表. 所以会用映射 .FREEDATA 这种方式,这样A 系统 里的表更新之后,就可 ...