如何管理多个 Github 账号的 ssh key?

栏目: 服务器 · 发布时间: 7年前

内容简介:通常我们有使用 Github、Gitlab,当 Github 或 Gitlab 下有多个账号,你会发现你的 ssh key 不够用了,因为站点会给你个提示:ssh key already in use github这个时候我们可以采用如下做法

背景

通常我们有使用 Github、Gitlab,当 Github 或 Gitlab 下有多个账号,你会发现你的 ssh key 不够用了,因为站点会给你个提示:

ssh key already in use github

这个时候我们可以采用如下做法

  1. 生成多个公钥/私钥对
  2. 对不同的域名配置不同的私钥

实操

  1. 生成多个公钥/私钥对
ssh-keygen -t rsa -C "你的邮箱"

用不同的邮箱创建不同的公钥/私钥对

  1. 添加私钥
ssh-add '私钥路径'

ssh-add 提示并将用户的使用的私钥添加到由ssh-agent 维护的列表中. 此后, 当使用公钥连接到远程 SSH 或 SCP 主机时,不再提示相关信息

  1. 创建配置文件

在 .ssh 目录创建 config 文件,配置如下内容

# gitlab
    Host git.iboxpay.com
    HostName git.iboxpay.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa

# github
    Host github2.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/feygh

# github

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

这个配置文件中 Gitlab 下的 ssh 通信都走 id_rsa 公钥加密,所以你在 Gitlab 仓库中要复制 id_rsa 这个公钥过去;

值得注意的是,这里有两个 Github 配置,仔细观察下 HostName 都是 github.com,但是 Host 不一样,这就是关键之处。

大家回忆下我们是怎么 clone Github 的?

git@github.com:username/projectname.git

分析这个地址 git@github.com 告诉 ssh 要登录的主机,username 和 projectname 看字面意思就理解,不赘述。

在这个配置文件中 Host 就是和 github.com 这个对应,HostName 是真实的物理连接 Host。

如果大家这么 clone Github:

git@github2.com:username/projectname.git

那么进行这个 ssh 连接的时候,会命中 ssh config 中 Host 为 github2.com 的配置,反过来亦然。也就说你在 clone Github 另一个项目的时候要手动修改下地址为上述地址即可。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

参与的胜利

参与的胜利

亨利·詹金斯 / 高芳芳 / 浙江大学出版社 / 2017-9-30 / CNY 42.00

《参与的胜利:网络时代的参与文化》是一场学者之间的对话,三位学者(亨利·詹金斯、伊藤瑞子和丹娜·博伊德)虽然来自不同的代际、不同的学科背景,但他们在相同的参与文化项目中展开合作,并试图解决相似的问题。 希望《参与的胜利:网络时代的参与文化》能够进一步激发团体内部及团体之间的对话,这些团体包括教育者、政策制定者、学者、关注参与文化的公民、业内人士、粉丝及其他任何关心我们文化的未来的人。理想的参......一起来看看 《参与的胜利》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试