美文网首页
多地办公之 SSH 防混淆

多地办公之 SSH 防混淆

作者: 厨子 | 来源:发表于2020-02-11 14:55 被阅读0次

    场景:在多托管平台下,如 gitlabgithub 等,生成 SSH key pair 的方法以及防止这些秘钥对文件冲突的策略(就是能正确做到各回各家 各找个妈 成功拉取到对应的项目)

    生成 SSH key pair

    1. 在终端输入:
    ssh-keygen -t ed25519 -C "email@example.com"
    
    • 注:后面的邮箱换成你使用的有效邮箱
    • gitlab 推荐使用 ED25519 加密方式,因为它安全性更强、性能更好
    1. 执行上面的命令后,会让你填写秘钥存放路径。有两种方式:

      1. 直接按回车键,就是默认路径: `~/.ssh/id_ed25519`
      //gitlab_company_rsa 是自定义的名字 根据公司区分文件名
      2. 手动输入一个路径,比如:`~/.ssh/gitlab_company_rsa`
      

      这里推荐使用 手动输入一个路径的方法,因为这是避免混淆的第一步
      如果你加入不止一家公司的私有 gitlab组,那么这样区分很有意义

    2. 拷贝生成的 SSH公钥内容:

    //gitlab_company_rsa 换成你自己指定的文件名
    pbcopy < ~/.ssh/gitlab_company_rsa.pub
    
    1. 添加 SSH 公钥到你的账号
      • 登录你的 gitlab 账号,点击头像 进入 Settings
      • 点击左侧 SSH Keys, 把刚才拷贝的内容粘贴到右侧的 Key 区域
      • 点击 Add key

    为SSH客户端配置私钥路径

    为了避免混淆,在上面的第2步,我们没有使用默认的秘钥路径。所以,为了让 SSH 客户端能找到该私钥,并成功链接到 gitlab,还需要做如下配置:

    //gitlab_company_rsa 换成你自己指定的文件名
    eval $(ssh-agent -s)
    ssh-add ~/.ssh/gitlab_company_rsa
    
    配置 gitlab host

    然后打开 ~/.ssh/config:

    open ~/.ssh/config
    

    按照下面的内容格式,配置你的 gitlab host,有几个公司的 host,就配置几个 :

    # Private GitLab instance
    Host gitlab.company.com
      Preferredauthentications publickey
      IdentityFile ~/.ssh/gitlab_company_rsa
    
    # Private GitLab instance2
    Host gitlab.company2.com
      Preferredauthentications publickey
      IdentityFile ~/.ssh/gitlab_company2_rsa
    
    #如果有 github 那么下面也会包含有 github 的域名配置
    #类似下面这样
    #Host *
      #AddKeysToAgent yes
      #UseKeychain yes
      #IdentityFile ~/.ssh/id_rsa
    

    最后

    github 的秘钥对生成方式和 上面介绍的 gitlab 类似,只不过它使用的加密方式是 RSA。防止混淆的策略同上。其中 为SSH客户端配置私钥路径配置 gitlab host 是比较重要的两步,不然即使指定了不同的秘钥文件路径,但还是会出现下载项目失败的问题。

    相关文章

      网友评论

          本文标题:多地办公之 SSH 防混淆

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