随着工作的深入,我们通常都会有多个git账户。比如公司gitlab一个账户,github或gitee有一个账户。而平时我们又回通过 配置ssh公私钥认证的方式省去繁琐的登录远程仓库的操作,不同的git账户一般都是不同的邮箱,而ssh又通过邮箱生成,那么就会涉及一个配置多对ssh key的问题

为Git配置SSH Key步骤


生成SSH Key

打开git bash终端,执行以下命令

ssh-keygen -t rsa -C "你的邮箱"

然后一直回车,程序将会在的~/.ssh/路径下生成一对公私钥。至于为了区分不同的公私钥,生成后再改名字即可

查看公钥内容

以下命令可以查看公钥内容,然后复制

cat ~/.ssh/id_rsa.pub
远程仓库配置公钥

下面的已github为例,gitlab和gitee过程都基本一样,大致过程就是:

点击个人头像 -> settings -> SSH And GPG Key -> 点击 新增SSH Key按钮 -> 复制公钥

如图所示:

配置多个SSH Key


通过以上配置SSH key 的步骤,我们可以为多个远程仓库配置配置SSH公钥,本地~/.ssh/目录如下所示

ssh-agent

打开ssh-agent

ssh-agent -s

ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程

这里如果你用的github官方的bash,用: ssh-agent -s

如果是其他的,比如msysgit,用:eval $(ssh-agent -s)

不然在添加私钥的时候可能会报下面错误 Could not open a connection to your authentication agent.

添加私钥

通过以下命令将所有私钥进行添加

ssh-add ~/.ssh/私钥
配置config文件

在存放公私钥的同级目录下创建一个名为config的文件,打开进行配置,如下所示:

# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_rsa
User Acelin_H # sitech
Host git.si-tech.com.cn
HostName git.si-tech.com.cn
PreferredAuthentications publickey
IdentityFile ~/.ssh/sitech_rsa
User Acelin_H # github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_rsa
User Acelin_H

Host: 取任意名字

HostName: 这个是真实的域名地址

IdentityFile:这里是id_rsa的地址

PreferredAuthentications:配置登录时用什么权限认证--可设置publickey,password publickey,keyboard-interactive等

User:配置使用用户名

验证

执行以下命令进行验证

ssh -T 'config配置的host值'

出现以下提示则证明已经成功,可以不用登录像各个远程仓库提交代码

git配置多个ssh key的更多相关文章

  1. Jenkins配置git/github 插件的ssh key

    参考来源:http://jingyan.baidu.com/article/a65957f4f0acc624e67f9bc1.html 方式一:本地需要生成公私钥文件,git/github中新建ssh ...

  2. 配置GitHub的SSH key

    配置GitHub的SSH key 生成密钥对 打开git bash工具(Windows环境),Linux则直接打开命令行,执行下面的命令生成密钥文件 ssh-Keygen -t rsa -C &quo ...

  3. 配置github的SSH key及GitHub项目上传方式一——使用终端命令行

    GitHub是一个开源的大仓库,我们经常从github上下载项目进行学习和研究,下面是一个完整的步骤——往GitHub上传一个新项目. 一.注册GitHub账号 1.注册GitHub账号,地址:htt ...

  4. 「BUAA OO Pre」Git生成多个ssh key并连接GitLab仓库

    「BUAA OO Pre」Git生成多个ssh key并连接GitLab仓库 Part 0 前言 写作背景 笔者在配置学校GitLab的ssh key时遇到一些问题,原因应为曾经配置过GitHub的s ...

  5. git 配置 https和ssh 免密码登录 常用操作命令

    git 配置 https和ssh 免密码登录 一. 区分https clone 和 ssh clone 不同的克隆方式导致校验方式不同,对应的免秘方式也不一样. https通过记住账号密码免登,ssh ...

  6. Mac下配置多个SSH KEY访问远程Git服务

    第一步 生成对应的ssh key 1 后面输入你的用户名 或者 邮箱 2 输入一个独立的ssh key名字 区别之前的名字 第二步  编辑 config文件 在.ssh/目录下面 在config文件配 ...

  7. Git高级之配置多个SSH key

    最近我们在代码托管平台上使用SSH的方式下拉代码,通常是用一个ssh key来拉取所有托管平台的代码,如码云,GitHub.GitLab等,但是总用一个不是太好.会有安全风险,这就需要为每个托管平台设 ...

  8. 如何配置多个ssh key

    上一篇简单学习了下怎样利用git bash上传文件到指定的github项目中,我们来回顾下.首先在本地安装好git,设置好用户名和邮箱(提交时的显示),接着我们生成SSH key把它添加到该项目own ...

  9. Git生成多个ssh key

    在实际的工作中, 有可能需要连接多个远程仓库, 例如我想连接私有仓库.GitLab官网.GitHub官网, 那么同一台电脑就要生成多个ssh key: ssh-keygen -t rsa -C &qu ...

随机推荐

  1. 重新整理 .net core 实践篇—————配置系统之强类型配置[十]

    前言 前文中我们去获取value值的时候,都是通过configurationRoot 来获取的,如configurationRoot["key"],这种形式. 这种形式有一个不好的 ...

  2. .Net Core自实现CLR异步编程模式(Asynchronous programming patterns)

    最近在看一个线程框架,对.Net的异步编程模型很感兴趣,所以在这里实现CLR定义的异步编程模型,在CLR里有三种异步模式如下,如果不了解的可以详细看MSDN 文档Asynchronous progra ...

  3. Python 扩展 Op

    Python 扩展 Op 注意 :本文涉及的 Python Kernel 仅在 gcc 4.8.5 编译环境下充分测试,进一步的完善计划见 Issue 3951. 背景介绍 OneFlow 将各种对于 ...

  4. MindSpore:自动微分

    MindSpore:自动微分 作为一款「全场景 AI 框架」,MindSpore 是人工智能解决方案的重要组成部分,与 TensorFlow.PyTorch.PaddlePaddle 等流行深度学习框 ...

  5. postman实现参数化执行及断言处理

    一.假设需要做的测试的参数如下: 注意保存为.csv文件时一定要选择格式为UTF-8 ,避免乱码. 二.输入参数和期望结果在postman中的用法: 注意一定要通过runner的方式进行运行,选择对应 ...

  6. hbase统计表的行数的三种方法

    有些时候需要我们去统计某一个hbase表的行数,由于hbase本身不支持SQL语言,只能通过其他方式实现. 可以通过一下几种方式实现hbase表的行数统计工作: 这里有一张hbase表test:tes ...

  7. 【NX二次开发】Block UI 操作按钮

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...

  8. 【NX二次开发】 获取体的面 UF_MODL_ask_body_faces

    获取体的面 1 extern DllExport void ufsta(char *param, int *returnCode, int rlen) 2 { 3 UF_initialize(); 4 ...

  9. 树莓派写入openwrt作为路由器

    需要:树莓派4B,SD卡一张,SD卡读卡器一枚,openwrt镜像一份. 环境: Linux(deepin 20). 将SD卡插入读卡器,读卡器再插入电脑. 首先查看SD卡: sudo fdisk - ...

  10. CentOS 7服务管理

    CentOS 6 使用service 管理指令: service 服务名 [start | stop | restart | reload | status] 但在 CentOS7.0 后 不再使用 ...