应用场景

我们经常将代码托管到github、gitlab这样的网站上。为了避免每次push代码时都要输入用户名和密码,通常会选择使用ssh协议,将公钥保存到托管网站上。在实际开发中,往往要将代码托管到多个不同的网站上。比如,公司的代码需要托管到coding上,自己的开源代码托管到GitHub上,私有代码托管到gitlab上等等,每个托管网站都对应一个git账户。默认情况下,一台电脑的Git只对应一个账户,只能往一个网站push代码,非常不便。这篇博客将介绍如何在一个Git终端中配置多个账户,同时管理多个托管网站的代码。

准备工作

首先,需要准备好对Git的全局用户进行配置。在初次安装Git时,往往会使用如下的命令配置全局用户名和邮箱:

git config --global user.name "xxx" // 配置全局用户名,如Github上注册的用户名
git config --global user.email "yyy@mail.com" // 配置全局邮箱,如Github上配置的邮箱

这个--global选项,是指这里配置的user.nameuser.email是相对于全局进行配置的,即不同的Git仓库默认的用户名和邮箱都是这个值。由于需要管理多个账户,所以仅仅使用这个全局值是不够的,需要在每个仓库中单独配置。对此,有两种处理方法:

如果之前已经使用该命令进行配置,则先使用如下命令清除

git config --global --unset user.name
git config --global --unset user.email

如果不确定是否已经配置过,可以使用下面的命令查看

git config --global user.name
git config --global user.email

创建ssh-key

ssh-keygen -t rsa -f ~/.ssh/id_rsa.别名 -C “邮箱地址“
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C “xxx@xxx.com“
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitee -C “xxx@xxx.com“

image.png

image.png

image.png

复制公钥

$ cat id_rsa_hostname.pub

image.png

image.png

ssh-key文件已经生成到指定路径了,那么接下来我们来配置一下。

重复上述步骤,创建好多个秘钥对

但是还没有完,ssh服务器默认是去找id_rsa,现在需要把这个key添加到ssh-agent中

这样ssh服务器才能认识my_id_rsa
在终端执行:(这里为什么加上了一个-K参数呢?因为在Mac上,当系统重启后会“忘记”这个密钥,所以通过指定-K把SSH key导入到密钥链中。)

ssh-add -K ~/.ssh/my_id_rsa

查看添加结果:

ssh-add -l

创建config文件

cd .ssh
touch config

配置

参数说明:

Host :分别为公司自己的gitlab托管的服务地址(一般公司都有自己的git托管服务)

Hostname :随便起

User :随便

PreferredAuthentications :写死publickey

IdentityFile :公钥地址。

注,如果我们用的id_rsa添加在了过个git托管服务器,比如github,我们只要再添加github的配置就行了


# second user(xxx@xxx.com)
# 建一个github别名,新建的帐号使用这个别名做克隆和更新Host githubHostName github.comUser gitIdentityFile ~/.ssh/id_rsa.github# second user(xxx@xxx.com)
# 建一个gitee别名,新建的帐号使用这个别名做克隆和更新Host giteeHostName gitee.comUser gitIdentityFile ~/.ssh/id_rsa.gitee

Host是别名。如果只是为了区分github、gitee等,为了方便使用,建议和HostName一致,这样在clone git的时候不用考虑修改hostname。

4、通过别名来使用

ssh -T gitee
ssh -T github

Hi xinwen-mao! You've successfully authenticated, but GitHub does not provide shell access.

表示成功

image.png

error

image.png

这个问题是由于权限的问题,需要文件设置权限:

chmod 600 *

image.png

参考文章:

管理本地多个SSH Key

Mac下配置多个SSH-Key

同一台Mac上配置多个ssh及git

转载自: https://www.jianshu.com/p/83be25bee6c1

Mac 配置多个ssh-key相关推荐

  1. github ssh 配置_怎么给Git配置多个SSH Key?

    有时候我们可能需要在同一台电脑上配置多个SSH Key,比如公司项目使用的是GitHub,个人开发用的是码云Gitee.这个时候我们可能需要有两个SSH Key,怎么配置呢? 假设你之前已经生成了一个 ...

  2. mac 如何快速生成SSH key,配置github SSH公钥连接(解决git push 413问题)

    来源:掘金 作者:老表 一.说一说 了解这个的起因是今天git push的时候遇到报错error: RPC 失败.HTTP 413 curl 22 The requested URL returned ...

  3. Mac Git 如何设置ssh key

    前言 GitHub(或者GitLab之类的远程的Git仓库)通常会提供https和ssh两种操作方式给用户,https的方式每次认证都需要输入密码,而ssh的方式则需要在服务器上配置ssh key(s ...

  4. Windows 环境配置Github 的SSH key

    今天需要将本机编写的代码提交至github 上,但是push 远程分支提示如下错误信: remote: Support for password authentication was removed ...

  5. MAC快速查看本地 SSH KEY

    cd .ssh/ ls -al cat id_rsa.pub

  6. SSH的工作原理、加密方式以及配置多个ssh key

    1.SSH工作原理 从ssh的加密方式说开去,看下文

  7. Git简单生成公钥和私钥的方法及git ssh key配置

    Git简单生成公钥和私钥的方法 Git安装完之后,需做最后一步配置.打开git bash,分别执行以下两句命令 git config --global user.name "用户名" ...

  8. win ssh key多账号配置

    ssh key多账号配置 1. 配置,准备工作 1.1 配置两个ssh key 1.2 创建初始项目demo 1.3 清空.ssh 2. 生成ssh key,配置 2.1 生成ssh key 2.2 ...

  9. ssh 连接服务器_使用 SSH Key 访问服务器

    阅读本文大概需要 2 分钟. 0. 前言 在刚接触到服务器的时候,一般都会采取密码登录,但每次登录服务器的时候都需要输入密码,体验很不好,而且相较于 SSH Key 不太安全,而使用 SSH Key ...

  10. 管理本地多个SSH Key

    有的时候,不仅Github使用ssh key,工作项目或者其他平台可能也需要使用ssh key来认证,如果每次都覆盖了原来的id_rsa文件,那么之前的认证就会失效.这个问题我们可以通过在~/.ssh ...

最新文章

  1. zabbix监控添加psql数据库和sql_server数据库模板
  2. python 操作微信定时发信息
  3. Linux命令 iperf - 网络性能测试工具
  4. HTML DOM(一):认识DOM
  5. oracle里的查询转换
  6. Python MySQLdb 循环插入execute与批量插入executemany性能分析(list批量写法亲测成功)
  7. ltv价值 应用_用户终生价值Ltv是什么,在游戏设计中如何考虑?
  8. java开发属于后端吗,值得一读!
  9. python导入gif_Python之GIF图倒放,沙雕快乐源泉!我已经笑了一天了!
  10. 标准WPS框架下的空间信息处理服务部署方法
  11. 使用CLion在Gtkmm中加载glade文件时的相对路径问题
  12. 【Zookeeper】基于Zookeeper实现分布式锁
  13. 对棋盘完美覆盖问题证明过程的质疑及其解决
  14. springboot图书管理怎么实现借书时间到期提醒_东和店镇第一小学图书数字化管理先进做法...
  15. Exadata:Smart Scan(二) FAST FULL SCAN
  16. 你有多自律,就有多自由
  17. springboot校园二手交易平台的设计与实现毕业设计源码260839
  18. 服务器信号满格网速很慢,手机信号满格但网速很慢 可能是这5个原因
  19. android qq勋章墙实现,科技教程:如何在手机QQ中进入勋章墙?
  20. 关于MTTF、MTBF、MTRF

热门文章

  1. iPad远程控制windows主机及内网穿透原理
  2. c(RGDyC),cyclo(Arg-Gly-Asp-D-Tyr-Cys),环状RGD多肽系列
  3. 赛天网吧无盘服务器,200台MZD无盘网吧解决方案.docx
  4. 基于三周加速度传感器的计步器设计
  5. 数据科学和人工智能技术笔记 二十、数据可视化
  6. 104Triangle Area三角面积
  7. 网站检测-网站检测软件-免费网站安全检测工具
  8. 初识 Arm 处理器
  9. idea从零到精通目录导航
  10. XMLConstants.FEATURE_SECURE_PROCESSING错误