在阿里云code有多个账号,多个账号不能同时使用同一个ssh key,那么就要设置多个ssh key
我还有github,gitlab等等账号也要配置
其他的也类似这样设置
fox.风

创建目录及config文件

mkdir -p  ~/.ssh/
touch ~/.ssh/config

创建秘钥

创建第一个秘钥

因为github,gitlab,gitee 只有一个账号,那么此处可以共用一套 公钥私钥

ssh-keygen -t rsa -C "foxiswho@gmail.com"

-t 指定要创建的密钥类型。可以使用:“rsa1”(SSH-1) “rsa”(SSH-2) “dsa”(SSH-2)
-C 提供一个新注释
-f 指定密钥文件名

执行后,后续步骤,直接按回车

github 配置 ssh 秘钥

https://github.com/settings/keys
点击按钮 new ssh key
复制如下命令 显示 的秘钥信息 到 key 内, title 名称随便填写

cat  ~/.ssh/id_rsa.pub

创建第二个秘钥

ssh-keygen -t rsa -C "foxiswho@gmail.com" -f ~/.ssh/aliyun1

-t 指定要创建的密钥类型。可以使用:“rsa1”(SSH-1) “rsa”(SSH-2) “dsa”(SSH-2)
-C 提供一个新注释
-f 指定密钥文件名

执行后,后续步骤,直接按回车

创建第三个秘钥

ssh-keygen -t rsa -C "foxiswho@gmail.com" -f ~/.ssh/aliyun2

第二个秘钥创建方式

设置ssh-agent代理

查看代理

ssh-add -l

输出

2048 SHA256:gNRaABeR7fMqq3erqweqwesfdxHlrqfpr123123123f3pOptg /Users/fox/.ssh/id_rsa (RSA)
2048 SHA256:gNRaABeR7fMqmv4wHfpEdPtHlrqfprHeXRZBP3pOptg /Users/fox/.ssh/aliyun1 (RSA)
2048 SHA256:fpuRV3Gi/j6DyzcT+mboHuY3z4wKqANPydY3UGMXsP0 foxiswho@gmail.com (RSA)

如果输出以下信息,则没有任何key

The agent has no identities.

如果想删除所有KEY

ssh-add -D

在代理中添加私钥

ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/aliyun1
ssh-add ~/.ssh/aliyun2

MAC 中执行

ssh-add -K ~/.ssh/id_rsa
ssh-add -K ~/.ssh/aliyun1
ssh-add -K ~/.ssh/aliyun2

配置config文件

vim ~/.ssh/config

这里做个说明,下面内容中github,gitlab,gitee 这3个可以不用配置的(为了直观显示,而放在下面),
因为只有一个账号,全使用默认的同一套公钥私钥,且都是使用git@code.aliyun.com:XXXX/XXX.git 域名方式拉取代码,
所以这里可以直接不需要把配置放在内
同理:如果阿里云其中一个账号也是使用的默认公共公钥私钥,那么也无需配置

gitlab
内容如下

# 建一个github 别名,新建的帐号使用这个别名做克隆和更新Host githubHostName github.comUser gitPreferredAuthentications publickeyIdentityFile ~/.ssh/id_rsa# 建一个gitee 别名,新建的帐号使用这个别名做克隆和更新Host giteeHostName gitee.comUser gitPreferredAuthentications publickeyIdentityFile ~/.ssh/id_rsa# 建一个gitlab 别名,新建的帐号使用这个别名做克隆和更新Host gitlabHostName gitlab.comUser gitPreferredAuthentications publickeyIdentityFile ~/.ssh/id_rsa# 建一个aliyun1 别名,新建的帐号使用这个别名做克隆和更新Host aliyun1HostName code.aliyun.comUser gitPreferredAuthentications publickeyIdentityFile ~/.ssh/aliyun1# 建一个 aliyun2 别名,新建的帐号使用这个别名做克隆和更新Host aliyun2HostName code.aliyun.comUser gitPreferredAuthentications publickeyIdentityFile ~/.ssh/aliyun2

Host 别名(方便记忆)
HostName IP地址或者域名(可以写假域名,但要在host文件中绑定ip地址)
IdentityFile 对应的私钥,也就是不带.pub 后缀的
User 用户名,有的是邮箱,一般默认情况 git 就可以
Port 默认是22可以不写,如果自己搭建的服务器监听的是其他端口这个参数必须声明

取消全局 用户名 邮箱并给每个项目单独设置用户和邮箱

全局和项目都需要配置

全局配置

查看全局用户配置信息

git config --global --list

如果已经设置过全局 用户名和邮箱,那么要把取消掉,否则 默认使用全局配置

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

项目配置

进入项目目录打开终端
查看项目配置信息

git config --list

配置名称和邮箱

git config user.name "fox"
git config user.email "foxiswho@gmail.com"

SourceTree 全局配置

如果你用的SourceTree 记得也要修改
偏好设置->通用
取消选中允许 SourceTree 修改你的全局 Mercuial 和 Git 配置文件

测试登录是否成功

域名

ssh -T git@code.aliyun.com
Welcome to GIT, fox!

别名

ssh -T git@aliyun1

输出

Welcome to GIT, fox!
ssh -T git@aliyun2

输出

Welcome to GIT, fox2!

别以为这样就可以成功 pull 了

到项目目录下

git pull

报错

fatal: 无法读取远程仓库。
请确认您有正确的访问权限并且仓库存在。

别名为aliyun1 这个就不需要修改了,因为默认读取第一个秘钥

所以这里要修改 别名aliyun2 的项目,版本库中的URL
使用终端进入项目根目录,然后执行vim .git/configopen .git/config
修改

url = git@code.aliyun.com:fox/demo.git

修改为

url = aliyun2:fox/demo.git

这里主要就git@code.aliyun.com 修改为别名aliyun2
再执行git pull 即可成功

到这里就完成了吗,不是的,重启电脑后还是报错

以下方式可以解决

方式一:

每次手动操作执行一下命令

ssh-add -K ~/.ssh/id_rsa
ssh-add -K ~/.ssh/aliyun1
ssh-add -K ~/.ssh/aliyun2

这样在电脑没重启之前都可以使用

方式二

这样在启动用户登录后,自动执行一次

echo "ssh-add -K ~/.ssh/id_rsa " >> ~/.bash_profile
echo "ssh-add -K ~/.ssh/aliyun1 " >> ~/.bash_profile
echo "ssh-add -K ~/.ssh/aliyun2 " >> ~/.bash_profile

查看

cat ~/.bash_profile

最后2行应该有如下信息

ssh-add -K ~/.ssh/id_rsa
ssh-add -K ~/.ssh/aliyun1
ssh-add -K ~/.ssh/aliyun2

https://blog.csdn.net/maoxinwen1/article/details/80269299
https://www.jianshu.com/p/eb5794272374
https://www.lovean.net/?id=208

Mac 系统下 配置多个ssh-key (git sourcetree)相关推荐

  1. Mac系统下查看和生成SSH Key

    一.打开vim(terminal.app)查看本地是否存在SSH-Key ls -al ~/.ssh >> 如果vim输出的是如下内容:证明本地没有生成的SSH Key,请执行第二步. N ...

  2. mac上php环境_在Mac系统下配置PHP运行环境

    PHP.png 概述 Mac系统对于PHP运行非常友好,我们只需要进行简单的配置便可以开始进行使用,本篇文章将一步一步地介绍Apache.PHP和MySQL的安装与配置,为开始进行开发铺好路 Apac ...

  3. mac电脑配置java环境变量_教你在Mac系统中配置JAVA环境变量的方法

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.下面向大家介绍Mac电脑上如何配置Java ...

  4. Linux、Mac、windows 系统下 配置Python虚拟环境 virtualenvwrapper教程,workon切换环境, 非常简单方便

    前言 开发及测试过程中每个环境都有各自的作用,避免破坏其他环境所以建议每个项目新建一个虚拟环境,经过对比最终我选择了virtualenvwrapper来作为我开发中虚拟环境管理工具,接下来一起来看一下 ...

  5. 网络工程师必备知识:苹果MAC系统下使用USB转console线配置交换机的连接方法

    现在用苹果操作系统的人越来越多,作为网络工程师的使用工具之一USB转串口线的转接头,如果在苹果系统下使用呢? 1.首先自然是先安装转接头光盘自带的驱动程序了.也可以到使用的品牌的官网上去下载. 2.安 ...

  6. Mac系统下Gitlab部署、使用的详细教程

    Mac系统下Gitlab部署.使用的详细教程 1.Gitlab部署前的准备工作 2.gitLab 创建账户.Group(组).Projects(项目) 3.Gitlab通用配置 GIT最小配置(use ...

  7. 在Linux系统下更改或更新SSH密钥密码的方法

    本文介绍如何在Linux系统下更新或更改SSH密钥密码,也适用在Unix系统中.SSH密钥通常用于向某些信息系统的用户进行身份验证,SSH密钥本身是私钥,使用从密码短语导出的对称加密密钥进一步加密私钥 ...

  8. Mac系统下连接阿里云并运行java程序

    文章目录 Mac系统下连接阿里云并运行java程序 第一步:连接服务器并查看当前服务器中java的版本 第二步:自行安装jdk环境 第三步:安装上传的jdk,并配置环境变量 第四步:创建.java程序 ...

  9. Linux下配置FTP、SSH服务

    在虚拟机中的Linux系统下配置FTP服务和SSH服务,配置完后就可以通过SecureCRT软件登录Linux系统. 配置FTP服务: 在Linux终端中输入命令: sudo apt-get inst ...

  10. 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器

    https://www.cnblogs.com/lgphp/p/3841098.html 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器 flask是一个micro ...

最新文章

  1. Caffe中Layer注册机制
  2. int a [] = {1,2,}; 允许使用怪异的逗号。 有什么特殊原因吗?
  3. MATLAB从入门到精通-Matlab R2020b新功能 | 子标题和标题/标签对齐功能!
  4. Python单例模式的四种创建方式实例解析
  5. 对我影响最大的三个老师
  6. 1.Swift教程翻译系列——关于Swift
  7. 《SpringCloud超级入门》使用Eureka集群搭建《十三》
  8. 【5分钟 Paper】(TD3) Addressing Function Approximation Error in Actor-Critic Methods
  9. 百元性价比高的蓝牙耳机推荐:学生党适合使用的蓝牙耳机
  10. Chrome插件使用IE tab
  11. 服务器硬盘检测系统,服务器RAID硬盘与日志主要检测方法
  12. windows slim read/write lock 原理剖析
  13. QT简单入门程序——实现可修改用户信息界面
  14. history 路由 vs hash 路由 vs location.href 实现跳转
  15. 正则表达式大全(超详细正则校验内容)
  16. 猜数字游戏java课程设计报告
  17. 哪个直播平台更适合做企业会议直播?
  18. (二)zynq芯片是什么
  19. Android音频开发之OpenSL ES
  20. 如何下载完整的ie6sp1

热门文章

  1. 加入商品分类信息,考虑用户所处阶段的 图模型 推荐算法 Rws(random walk with stage)...
  2. 拓端tecdat|R语言样条曲线、分段线性回归模型piecewise regression估计个股beta值分析收益率数据
  3. 拓端tecdat|R语言分段线性回归分析预测车辆的制动距离
  4. 拓端tecdat|R语言公交地铁路线进出站数据挖掘网络图可视化
  5. 拓端tecdat|在R语言中用模拟探索回归的P值
  6. SystemExit: 2
  7. (12)机器学习_特征选择
  8. 软件工程 第六章 编码与测试
  9. php 帝国cms discuz,帝国CMS整合Discuz图文教程
  10. xgboost算法详解