美文网首页
Mac管理多个SSH KEY

Mac管理多个SSH KEY

作者: 大树下的方丈 | 来源:发表于2018-06-13 19:10 被阅读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的代理

  • 1、首先查看代理
ssh-add -l 

若提示

Could not open a connection to your authentication agent.

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

exec ssh-agent bash 

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

ssh-add -D
  • 2、代理中添加私钥
    默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中:
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)
  • 3、编辑配置文件config
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就行
  • 4、添加公钥
    这里以GitHub为例,其他平台添加流程基本一样。
    通过cat命令查看公钥内容,并复制全部内容(从ssh-rsa开始复制到最后邮箱结束,全部复制)
cat ~/.ssh/id_rsa_github.pub

添加步骤如下:


找到设置.png
New SSH key.png
image.png
  • 5、测试
    测试是否可以SSH连接服务器一下几种方式都可以:
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管理里添加的公钥是否正确。

  • 6、修改host
    如果没有域名,域名到期时只能通过ip地址去访问git服务器,这个时候为了保证 ~/.ssh/config文件的一致性,可以设置host文件。
vim /etc/hosts

添加 ip地址 域名

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

原文连接

相关文章

  • Mac管理多个SSH KEY

    前言 重新搭建了gitlab服务器来管理代码。再加上自己的GitHub托管平台,码云托管平台,每个平台都需要 SS...

  • mac管理多个ssh key

    生成SSH-Key (1)打开终端,进入到.ssh文件夹内 (2)生成ssh-key 在生成ssh-key时,会让...

  • SSH 免密码登录与本地多 Key 管理

    本地多个 SSH KEY 的管理 日常办公中常遇见本地需要生成多个 ssh key 的情况,使用 ssh-keyg...

  • Mac 下管理多个ssh key

    工作需要,在bitbucket上存在多个git帐号;需要在本地配置多个公钥信息,用于不同git帐号的使用,于是总结...

  • 管理多个SSH KEY

    [toc] 查看 生成不同名称的ssh密钥 输入过程中可以不输入密码, 直接回车,懒人方式 会在 ~/.ssh/,...

  • 管理Git生成多个ssh key及报错Bad configura

    1.管理Git生成多个ssh key 生成两个key 生成key的命令ssh-keygen -t rsa -C “...

  • 转发管理本地多个SSH key

    !!!管理本地多个SSH key原文地址 当Github 和 GitLab都需要ssh key来认证,如果每次都覆...

  • Mac下多个ssh key

    前提:已经有了一套可以正常使用的git环境。需求说明:在Mac下,用两个gitlab账号上传或下载代码,并且互不影...

  • Git配置多个SSH-KEY

    git可以配置多个ssh-key。 生成多个ssh-key命令 添加私钥

  • Mac下生成多个SSH KEY并管理

    查找已经存在的SSH KEY 生成一个key 这里注意如果以前已经生成过sshkey,文件名为"id_rsa",如...

网友评论

      本文标题:Mac管理多个SSH KEY

      本文链接:https://www.haomeiwen.com/subject/edajeftx.html