Mac管理多个SSH KEY

2018-06-13  本文已影响128人  大树下的方丈

前言

重新搭建了gitlab服务器来管理代码。再加上自己的GitHub托管平台,码云托管平台,每个平台都需要 SSH KEY 来登陆。这些平台都使用同一个公钥(id_rsa/id_rsa.pub 默认生成的 私/公钥)是否可以?答案肯定是可以的,但是有很多弊端,这里我就不说了。
添加、配置、管理多个公/私钥。总有一些坑要踩过,所以写个文档记录下需要注意的地方和踩过的坑。原文连接

添加多个 ssh key

1、新添加 ssh key

//为了保证后面只需要输入名字首先切换到本机ssh目录
cd ~/.ssh
//创建ssh-key
ssh-keygen -t rsa -C  "yourname@email.com"
//为新生成的秘钥命名,由于已经在ssh目录下了,所以只需输入文件名
Enter file in which to save the key (/Users/admin/.ssh/id_rsa):id_ras_github

同样的方式根据不同的平台生成三个秘钥对,目录(~/.ssh)最后的结果如下:

//自己的 gitlab 
id_rsa_yiliao
id_rsa_yiliao.pub
//码云 gitee.com
id_rsa_mayun
id_rsa_mayun.pub
//GitHub github.com
id_rsa_github
id_rsa_github.pub

2、设置ssh key的代理

ssh-add -l 

若提示

Could not open a connection to your authentication agent.

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

exec ssh-agent bash 

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

ssh-add -D
ssh-add ~/.ssh/id_rsa_yiliao 
ssh-add ~/.ssh/id_rsa_mayun
ssh-add ~/.ssh/id_rsa_github 
ssh-add -l
2048 SHA256:ojXu/V77OR1muXEWtMJ0BLw3VQ7UVIfCkoKmZnIoa30 /Users/admin/.ssh/id_rsa_yiliao (RSA)
2048 SHA256:1XZBkfKzSc+WgXpqzPw2nuaVBMuIaFamdt+9i7HSOtE /Users/admin/.ssh/id_rsa_github (RSA)
2048 SHA256:uk0N6t4zmwFLf3ySBTBKYMzF9qD42ZxLGzGU8UrXBRY /Users/admin/.ssh/id_rsa_mayun (RSA)
touch ~/.ssh/config  
//或者
vim ~/.ssh/config  

添加内容

# yiliao
Host yiliao.com
HostName yiliao.com
IdentityFile ~/.ssh/id_rsa_yiliao
user git

# github
Host github
HostName github.com
IdentityFile ~/.ssh/id_rsa_github
user git

# mayun
Host mayun
HostName gitee.com
IdentityFile ~/.ssh/id_rsa_mayun
user git

这里说明一下每个字段的意思:

# 服务器1
Host     别名(方便记忆)
HostName IP地址或者域名(可以写假域名,但要在host文件中绑定ip地址)
Port     默认是22可以不写,如果自己搭建的服务器监听的是其他端口这个参数必须声明
IdentityFile  私钥文件路径
User     用户名一般写git就行
cat ~/.ssh/id_rsa_github.pub

添加步骤如下:


找到设置.png
New SSH key.png
image.png
ssh -T git@github.com (域名)
ssh -T git@config文件中的别名 
ssh -T git@ip地址

这时候,如果提示:

admin ~/Desktop: ssh -T git@github.com
The authenticity of host 'github.com (13.229.188.59)' can't be established.
ECDSA key fingerprint is SHA256:XkVfJu/1xvcPAHO4FLkTSZovag9e0isE3bBxu19bYtY.
Are you sure you want to continue connecting (yes/no)?
那么输入yes,然后回车。(因为第一次访问时known_hosts中没有记录,输入yes回车下次就不会提示了,并保存到known_hosts中)
ssh -T git@xxx 这里的xxx是在config文件中的Host。找出SSH对应的host。HostName就是git托管的平台url。

若出现

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

则表示成功。若出现

permission denied (publickey) 

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

vim /etc/hosts

添加 ip地址 域名

//添加ip地址(这里是假的ip地址)      域名
13.229.188.59   yiliao.com
13.229.188.59   gitee.com
13.229.188.59   github.com

原文连接

上一篇下一篇

猜你喜欢

热点阅读