美文网首页
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

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