Mac 系统下 配置多个ssh-key (git sourcetree)
在阿里云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/config
或open .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)相关推荐
- Mac系统下查看和生成SSH Key
一.打开vim(terminal.app)查看本地是否存在SSH-Key ls -al ~/.ssh >> 如果vim输出的是如下内容:证明本地没有生成的SSH Key,请执行第二步. N ...
- mac上php环境_在Mac系统下配置PHP运行环境
PHP.png 概述 Mac系统对于PHP运行非常友好,我们只需要进行简单的配置便可以开始进行使用,本篇文章将一步一步地介绍Apache.PHP和MySQL的安装与配置,为开始进行开发铺好路 Apac ...
- mac电脑配置java环境变量_教你在Mac系统中配置JAVA环境变量的方法
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.下面向大家介绍Mac电脑上如何配置Java ...
- Linux、Mac、windows 系统下 配置Python虚拟环境 virtualenvwrapper教程,workon切换环境, 非常简单方便
前言 开发及测试过程中每个环境都有各自的作用,避免破坏其他环境所以建议每个项目新建一个虚拟环境,经过对比最终我选择了virtualenvwrapper来作为我开发中虚拟环境管理工具,接下来一起来看一下 ...
- 网络工程师必备知识:苹果MAC系统下使用USB转console线配置交换机的连接方法
现在用苹果操作系统的人越来越多,作为网络工程师的使用工具之一USB转串口线的转接头,如果在苹果系统下使用呢? 1.首先自然是先安装转接头光盘自带的驱动程序了.也可以到使用的品牌的官网上去下载. 2.安 ...
- Mac系统下Gitlab部署、使用的详细教程
Mac系统下Gitlab部署.使用的详细教程 1.Gitlab部署前的准备工作 2.gitLab 创建账户.Group(组).Projects(项目) 3.Gitlab通用配置 GIT最小配置(use ...
- 在Linux系统下更改或更新SSH密钥密码的方法
本文介绍如何在Linux系统下更新或更改SSH密钥密码,也适用在Unix系统中.SSH密钥通常用于向某些信息系统的用户进行身份验证,SSH密钥本身是私钥,使用从密码短语导出的对称加密密钥进一步加密私钥 ...
- Mac系统下连接阿里云并运行java程序
文章目录 Mac系统下连接阿里云并运行java程序 第一步:连接服务器并查看当前服务器中java的版本 第二步:自行安装jdk环境 第三步:安装上传的jdk,并配置环境变量 第四步:创建.java程序 ...
- Linux下配置FTP、SSH服务
在虚拟机中的Linux系统下配置FTP服务和SSH服务,配置完后就可以通过SecureCRT软件登录Linux系统. 配置FTP服务: 在Linux终端中输入命令: sudo apt-get inst ...
- 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器
https://www.cnblogs.com/lgphp/p/3841098.html 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器 flask是一个micro ...
最新文章
- Caffe中Layer注册机制
- int a [] = {1,2,}; 允许使用怪异的逗号。 有什么特殊原因吗?
- MATLAB从入门到精通-Matlab R2020b新功能 | 子标题和标题/标签对齐功能!
- Python单例模式的四种创建方式实例解析
- 对我影响最大的三个老师
- 1.Swift教程翻译系列——关于Swift
- 《SpringCloud超级入门》使用Eureka集群搭建《十三》
- 【5分钟 Paper】(TD3) Addressing Function Approximation Error in Actor-Critic Methods
- 百元性价比高的蓝牙耳机推荐:学生党适合使用的蓝牙耳机
- Chrome插件使用IE tab
- 服务器硬盘检测系统,服务器RAID硬盘与日志主要检测方法
- windows slim read/write lock 原理剖析
- QT简单入门程序——实现可修改用户信息界面
- history 路由 vs hash 路由 vs location.href 实现跳转
- 正则表达式大全(超详细正则校验内容)
- 猜数字游戏java课程设计报告
- 哪个直播平台更适合做企业会议直播?
- (二)zynq芯片是什么
- Android音频开发之OpenSL ES
- 如何下载完整的ie6sp1
热门文章
- 加入商品分类信息,考虑用户所处阶段的 图模型 推荐算法 Rws(random walk with stage)...
- 拓端tecdat|R语言样条曲线、分段线性回归模型piecewise regression估计个股beta值分析收益率数据
- 拓端tecdat|R语言分段线性回归分析预测车辆的制动距离
- 拓端tecdat|R语言公交地铁路线进出站数据挖掘网络图可视化
- 拓端tecdat|在R语言中用模拟探索回归的P值
- SystemExit: 2
- (12)机器学习_特征选择
- 软件工程 第六章 编码与测试
- php 帝国cms discuz,帝国CMS整合Discuz图文教程
- xgboost算法详解