Mac下一台电脑管理多个SSH KEY(转)
一、关于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
Mac下一台电脑管理多个SSH KEY(转)的更多相关文章
- 同一台电脑管理多个SSH KEY
同一台电脑关于多个SSH KEY管理 笔者之前为电脑中的homestead虚拟机配置过id_rsa,但现在因为想在github上搭建基于hexo的博客,所以需要配置github的ssh key,因此产 ...
- 同一台电脑关于多个SSH KEY管理
运用shh -T -v git@github.com查看具体出错信息,再根据信息来调试 原文链接: http://yijiebuyi.com/blog/f18d38eb7cfee860c117d ...
- 一台电脑如何管理多个ssh key
目录 一.生成ssh key 1.1 生成密钥(必须) 1.2 设置路径 (可选) 1.3 指定密语字符串(可选) 二.设置ssh key的代理 2.1. 首先查看代理 2.2. 添加私钥 三.添加公 ...
- github/gitlab 管理多个ssh key
github/gitlab 管理多个ssh key 以前只使用一个 ssh key 在github上提交代码,由于工作原因,需要再添加一个ssh key在公司的 gitlab上提交代码,下面记录下配置 ...
- mac下开发IOS代码管理
1.安装和配置subversion服务器 在windows 服务器上安装VisualSVN-Server,下载地址http://www.visualsvn.com/server/download/.采 ...
- windoes下一台电脑是无线/USB上网,如何将另一台电脑通过一拖一上网
https://wenku.baidu.com/view/0c95830bbb68a98271fefa6e.html 一台电脑是无线上网,如何将另一台电脑通过一拖一上网有时候,在没有路由器的情况下,只 ...
- Mac下Supervisor进程监控管理工具的安装与配置
Supervisor是一个类 unix 操作系统下的进程监控管理工具. Supervisor是由 Python 写成,可用 Python 的包安装管理工具 pip(Python Package Ind ...
- Mac下使用sshpass让iterm2支持多ssh登录信息保存
mac下没有xshell等连接linux服务器的工具,当需要管理的服务器越来越多之后,密码管理就成了一个很头疼的问题,每次都需要去复制粘贴密码,浪费了很多时间,在网上查了不少资料,发现mac下可以使用 ...
- 同一台电脑使用多个ssh连接git,出现权限不够的问题
在本地使用多个ssh连接git时出现如下错误: Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 当一台电脑上同时使用多个ssh k ...
随机推荐
- Spring Boot配置FastJson报错'Content-Type' cannot contain wildcard type '*'
升级到最新版本的fastjson以后报的错,查了一下资料,发现 fastjson从1.1.41升级到1.2.28之后,请求报错:json java.lang.IllegalArgumentExcept ...
- 自定义animate()引起的动画叠加
当用户快速在某个元素多次执行动画时,会造成动画累积的现象.这时,就需要引入动画状态这个概念.判断元素是否处于动画状态中,如果处于,则不添加新动画 常常用于在设置动画之前未清除动画,造成的动画叠加.解决 ...
- Fork/Join 型线程池与 Work-Stealing 算法
JDK 1.7 时,标准类库添加了 ForkJoinPool,作为对 Fork/Join 型线程池的实现.Fork 在英文中有 分叉 的意思,而 Join 有 合并 的意思.ForkJoinPool ...
- REQUEST的TRACE文件
--REQUEST的TRACE文件 SELECT 'Trace Name: ' || DEST.VALUE || '/' || LOWER (DBNM.VAL ...
- Android-自定义开关
效果图: 需要两张图片,一张图片为背景,一张图片为滑动的点 布局去指定一个自定义View对象: view.custom.shangguigucustomview.MyCustomSwitch < ...
- struct timeval 计时问题
linux编程中,如果用到计时,可以用struct timeval获取系统时间.struct timeval的函数原型如下: struct timeval { __kernel_time_t tv_s ...
- linux的定制和发布(二)
Linux的发布 有时候希望将定制好的Linux移植到其他的机器上使用,所以我们将定制好的Linux制作 成安装光盘的形式,可以方便在其他机器上安装. 为此我们要先制作一个引导系统,由 ...
- Docker在github上的站点
https://github.com/docker (docker在github上的官方地址) https://github.com/dockerfile (docker官方镜像的Dockerfile ...
- Azure静态公网ip自助反解
Linux下安装az工具,并登陆 az login 执行 az network public-ip update --resource-group ip所在资源组名称 --name ip对应资源名称 ...
- PostgreSQL查询数据(连接查询和子查询)
原料 --用户表 create table "SysUser"( "UserId" serial, --用户Id,自增 "UserName" ...