随着工作的深入,我们通常都会有多个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. 2021.5.23 noip模拟2(排序|划艇|放棋子)

    今天比昨天更惨,惨炸了 看到T1不会,跳!!! T2不会,再跳!!!! T3不会,后面没题了:::: 无奈无奈,重新看T1,然鹅时间已经过去了一个小时 然而我一想不出题来就抱着水瓶子喝水,然后跑厕所, ...

  2. Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读

    Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读 Action4D: Online Action Recognition in the Crowd and Clutter 论文链接 ...

  3. 3D结构光

    3D结构光 3D结构光的整个系统包含结构光投影设备.摄像机.图像采集和处理系统.其过程就是投影设备发射光线到被测物体上,摄像机拍摄在被测物体上形成的三维光图形,拍摄图像经采集处理系统处理后获得被测物体 ...

  4. C++ OP相关注意事项

    C++ OP相关注意事项 Paddle中Op的构建逻辑 1.Paddle中Op的构建逻辑 Paddle中所有的Op都继承自OperatorBase,且所有的Op都是无状态的,每个Op包含的成员变量只有 ...

  5. 将HLSL射线追踪到Vulkan

    将HLSL射线追踪到Vulkan Bringing HLSL Ray Tracing to Vulkan Vulkan标志 DirectX光线跟踪(DXR)允许您使用光线跟踪而不是传统的光栅化方法渲染 ...

  6. fiddler选项卡-Filters(过滤)

    Filter filter的意思是过滤,在fiddler中,它可以用来过滤请求,使得session列表能够更加精准的展现抓到的数据流,而不是杂乱的一堆. 1.filter的界面 2.界面详解 1.Us ...

  7. 在线CUR转换器

    在线CUR转换器 在线将文件与cur相互免费转换 鼠标光标cur格式可以利用这网站在线免费转换成jpg,png等任意一种格式,方便快速! 转换格式请点击在线CUR转换

  8. JAVA微服务应用(1)--SpringBoot中的REST API调用(学习笔记)

    好长时间没有写学习小结了,最近宁正好看了小马哥的微服务系列之<Spring Boot>系列,颇有收获,并且公司也布置一个课题就是关于Spring中的REST API调用.于是乎回归本行,再 ...

  9. HTTP请求方法及响应状态码详解

    HTTP请求方法和响应状态详解 HTTP请求方法 HTTP1.0/1.1支持的所有请求方法如下所示: GET 用来请求访问已被URI识别的资源.指定的资源经服务器解析后返回响应内容. POST POS ...

  10. 基于ABP落地领域驱动设计-01.全景图

    什么是领域驱动设计? 领域驱动设计(简称:DDD)是一种针对复杂需求的软件开发方法.将软件实现与不断发展的模型联系起来,专注于核心领域逻辑,而不是基础设施细节.DDD适用于复杂领域和大规模应用,而不是 ...