一、关于ssh是什么?

http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html

二、需求:

一台电脑上(Mac os)管理多个ssh key,可以任意切换,达到多用户(账号)使用不同ssh提交代码。

以下利用gerrit和github账号来做例子。

1)生成ssh key

ssh-keygen -t rsa -C "youremail@yourcompany.com" 

若一路回车(密码可以不写),这样只会在~/.ssh/ 目录下生成 id_rsa 和 id_rsa.pub 两个文件。为了区分,我们在第一个回车后设置路径:

Enter file in which to save the key (/root/.ssh/id_rsa):~/.ssh/文件名 

由此我们分别为gerrit和github生成对应的公钥和私钥,完成后的目录:

id_rsa_gerrit
id_rsa_gerrit.pub
id_rsa_github
id_rsa_github.pub

2)设置ssh key的代理

1、 首先查看代理

ssh-add -l 

若提示

Could not open a connection to your authentication agent.

则系统代理里没有任何key,执行如下操作

exec ssh-agent bash 

若系统已经有ssh-key 代理 ,可以删除

ssh-add -D

2、 添加私钥

ssh-add ~/.ssh/id_rsa_gerrit
ssh-add ~/.ssh/id_rsa_github

3、添加公钥

在对应的gerrit和github的ssh管理页面,添加对应的公钥(.pub 文件内容),保存到代码管理服务器。

4、添加和编辑配置文件config

在 ~/.ssh 目录下新建一个config文件

touch ~/.ssh/config 

添加内容

# gerrit
Host gerrit.xxxx.com
HostName gerrit.xxxx.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gerrit
user gerrit # github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
user git 

当然也可以利用nano命令来创建和编辑

nano ~/.ssh/config 

如此,ssh就会根据登陆的不同域,来读取对应的私钥文件

5、测试

ssh -T git@github.com 

若出现

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

则表示成功。

若出现

permission denied (publickey) 

请检查github的ssh管理里添加的公钥是否正确。

6、其他

提交代码到gerrit失败,报错为

remote: ERROR: In commit xxxxxxxxxxxxxxxxxxxxxxxx
remote: ERROR: committer email address aaaaa@aaa.com
remote: ERROR: does not match your user account.
remote: ERROR:
remote: ERROR: The following addresses are currently registered:
remote: ERROR: bbbbbbb@bbbbbb.com
remote: ERROR:
remote: ERROR: To register an email address, please visit:
remote: ERROR: http://xxxx/xxxx 

此报错并非你之前设置管理多个ssh出现问题,而是因为你当前git用户信息和你提交代码的服务器注册的用户信息不一致,即服务器检查了你的用户信息,进行了拒绝。

解决方法如下:

1.编辑.gitconfig

打开~/.gitconfig文件
将原来的
name = aaaaa
email = aaaaa@aaa.com
改成你当前的
name = bbbbb
email = bbbbb@ bbb.com

2.更改提交

git commit --amend --author 'bbbbb <bbbbb@ bbb.com>' 

当然你也可以这样重新提交

git reset HEAD^
git add -A
git commit -m “xxxx”

转自:http://blog.csdn.net/wwmusic/article/details/51027458

==>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<==

Mac下一台电脑管理多个SSH KEY(转)相关推荐

  1. 不同网络下 一台电脑连接另一台电脑的mysql数据库

    不同网络下 一台电脑连接另一台电脑的mysql数据库 首先确保,两台电脑都已经有了基本配置好的可用的mysql数据库 确定一台电脑为服务端,再服务端数据库下,先授权可被其他电脑访问: 如果MySQL是 ...

  2. Linux和Mac下的微信电脑版electronic-wechat(非官方)

    2016-10-15更新 添加了3.3–为微信电脑版增加桌面启动器(快捷方式) CSDN GitHub Linux和Mac下的微信电脑版electronic-wechat(非官方) AderXCodi ...

  3. 同一局域网下多台电脑共享文件夹

    同一局域网下两台电脑共享文件 1.关闭用户A电脑的网络防火墙 2.用户B在cmd中ping用户A的ipv4地址,查看是否可以ping通 3.用户A设置需要共享的文件夹(右键文件夹->属性-> ...

  4. 解决 Win10 局域网下两台电脑无法ping通: 无法访问目标主机

    解决 Win10 局域网下两台电脑无法ping通: 无法访问目标主机 解决 Win10 局域网下两台电脑无法ping通: 无法访问目标主机 问题描述 第一步:启用规则 第二步:修改高级共享设置 第三步 ...

  5. Linux和Mac下的微信电脑版electronic-wechat 非官方

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 2016 ...

  6. windows10下两台电脑连接局域网怎么设置?

    windows10下两台电脑连接局域网怎么设置? 参考链接:https://www.sohu.com/a/433679217_120006554 1. 如图所示,点击网络图标,出现网络相关,然后点击& ...

  7. 局域网下两台电脑ping不通

    参考:https://blog.csdn.net/sinat_38718975/article/details/79866557 1.在同一网段内 假设电脑A.B均在192.168.0.X的网段内,两 ...

  8. 同一局域网下两台电脑传文件

    自己买了新电脑,由于有大量文件需要传输,故搜索使用了这个方法. 第一步: 在控制面板-->网络和共享中心-->高级共享设置,打开后按如下设置. 问题:在启用网络发现时,点击"保存 ...

  9. 你的下一台电脑,可能没有主机

    如今这个年代,由于电脑的飞速发展,电脑陪着也在跟着迅速的变化,如果不能及时的更新电脑相关的配着以及相关的软件系统,很多需要高配置的软件游戏根本无法运行,但是更换电脑的配置甚至说更换一台高配置的电脑所需 ...

最新文章

  1. 2013-7-12学习笔记
  2. 面向自动驾驶领域的3D点云目标检测方法汇总!(单模态+多模态/数据+代码)
  3. [转]关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的/g是什么意思?”...
  4. python如何读取excel数据-使用Python读取电子表格中的数据
  5. c语言程序构造数据类型问题,C语言程序设计课程课件之第四章简单构造数据类型.ppt...
  6. PHPStorm IDE 快捷键
  7. OpenGL Deferred Shading延迟阴影实例
  8. 精选6种制作酷炫动图的方法,收藏!
  9. C/C++函数学习(6)容器分类
  10. 基于webview的选择滑动控件(PC和wap版)
  11. 《设计模式系列》---备忘录模式
  12. [转载]ASP.NET-----Repeater数据控件的用法总结
  13. PAIP.通过公共网络传递秘密信息.txt (包括语音和文字)
  14. vuex - 学习日记
  15. 翻译: Transfer learning 迁移学习指南
  16. android applock 源码,AppLock | F-Droid - Free and Open Source Android App Repository
  17. Mac 输入法候选词框消失的解决方法
  18. android actionBar searchview 默认展开,并且放大镜图标在编辑框内。
  19. 北京中医药 计算机基础,北京中医药大学远程教育学院计算机基础2008辅导资料.doc...
  20. 2019中国智能制造十大发展趋势

热门文章

  1. 剑指offer例题——二维数组中的查找
  2. ELK系统之logstash问题:retrying failed action with response code: 429
  3. 通过“四大行为”对WCF的扩展[原理篇]
  4. 从茶叶蛋到互联网思维
  5. ASP.NET MVC 5 入门指南汇总
  6. Group by优化
  7. [PAL编程规范]SAP HANA PAL逻辑回归预测分析Logistic Regression编程规范LOGISTICREGRESSION(模型)...
  8. isNotNull与isNotEmpty区别
  9. 三层交换机原理解析(转)
  10. 更改系统的默认安装路径