转载自: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. springMVC注解的入门案例

    1.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&qu ...

  2. 解题报告:hdu2602 Bone collector 01背包模板

    2017-09-03 15:42:20 writer:pprp 01背包裸题,直接用一维阵列的做法就可以了 /* @theme: 01 背包问题 - 一维阵列 hdu 2602 @writer:ppr ...

  3. JVM与垃圾回收机制(GC)和类的生命周期

    JVM运行时数据区 GC(垃圾回收机制) 什么是垃圾回收机制: 在系统运行过程中,会产生一些无用的对象,这些对象占据着一定的内存,如果不对这些对象清理回收无用的是对象,可能会导致内存的耗尽,所以垃圾回 ...

  4. vue-cli router的使用

    用了很久这个vue-cli到现在连入门都算不了,为了防止忘记还是很有必要记一下随笔的. 关于vue-cli中的router的使用,, 我将所有页面都存放在components文件夹下, 灰后通过rou ...

  5. python学习笔记(字典乱码)

    博主总结下 python中字典中包含中文时,使用过程中出现乱码 json.dumps(params, encoding="UTF-8", ensure_ascii=False) p ...

  6. LR 的基础分析--y-手打

    一.分析Analysis Summary 1.实际参与测试的Vuser为10个 2.总吞吐量(TPS)为208725625bytes 3.平均吞吐量为714814bytes/second 4.总点击数 ...

  7. python脚本11_求10万以内所有素数

    #求10万以内所有素数 num = int(input(">>>")) strs = '' for i in range(2,num): for c in ran ...

  8. day22 CMDB 基础部分 (一)

    参考博客: http://www.cnblogs.com/alex3714/articles/5420433.html

  9. Java复习8.多线程

    Java复习8 多线程知识 20131007 前言: 在Java中本身就是支持多线程程序的,而不是像C++那样,对于多线程的程序,需要调用操作系统的API 接口去实现多线程的程序,而Java是支持多线 ...

  10. tornado源码分析系列一

    先来看一个简单的示例: #!/usr/bin/env python #coding:utf8 import socket def run(): sock = socket.socket(socket. ...