• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    10分钟教你本地配置多个git ssh连接的方法

    前言

    你最近换电脑了吗?还记得如何在本地配置多个 git ssh 连接吗?一般公司用的是自己内网部署的 gitlab 服务器进行代码管理,开发者使用的是公司的用户名和公司的邮箱,而在个人的开源项目中,我们的代码托管于 github,这个时候就需要两个或多个以上的 SSH-Key 去进行登录,方便代码的拉取与推送。

    文章大纲

    第一步:查看所有 SSH-Key

    打开 bash/zsh 终端:执行以下命令

    $ cd ~/.ssh/
    $ ls
    

    输出如下:

    KaydeMBP:~ kayliang$ cd ~/.ssh/
    KaydeMBP:.ssh kayliang$ ls
    config   github_id-rsa.pub gitlabnei_id-rsa.pub
    github_id-rsa  gitlabnei_id-rsa known_hosts

    第二步:生成一个 ssh-key,用于配置公司的 GitLab

    在~/.ssh/目录会生成gitlab_id-rsa和gitlab_id-rsa.pub私钥和公钥。

    $ ssh-keygen -t rsa -C "xxx@xxx.com" -f ~/.ssh/gitlabnei_id-rsa
    

    查看你的 public key,我们将gitlabnei_id-rsa.pub中的内容粘帖到公司GitLab服务器的SSH-key的配置中。

    # 把文件内容打印到命令行工具上,方便复制
    cat ~/.ssh/gitlab_id-rsa.pub
    

    格式如下所示,记得把整个文本包括 ssh-rsa 也复制到剪切板上。

    ssh - rsa;
    
    xxxxxxxxx;
    xxxxx;
    
    

    然后粘贴到网站的 ssh 配置中:

    第三步:Github 生成一个 SSH-Key

    在~/.ssh/目录会生成github_id-rsa和github_id-rsa.pub私钥和公钥。我们将github_id-rsa.pub中的内容粘帖到github服务器的SSH-key的配置中。

    ssh-keygen -t rsa -C "xxxx@xxxx.com" -f ~/.ssh/github_id-rsa
    

    第四步:在 ~/.ssh 目录下添加config配置文件用于区分多个 SSH-Key

    1. 添加识别 SSH keys 新的私钥

    默认只读取 id_rsa,为了让 SSH 识别新的私钥,需要将新的私钥加入到 SSH agent 中

    # 查看已经添加的私钥
    ssh-add -l
    
    3072 SHA256:xxxxxxxxxx linjy@xxxx.com.cn (RSA)
    
    
    $ ssh-agent bash
    $ ssh-add ~/.ssh/github_id_rsa
    $ ssh-add ~/.ssh/gitlabnei_id_rsa
    
    

    这一步很重要,否则你在后面进行 git clone 拉取 ssh 地址的仓库会出现错误。

    KaydeMBP:chengdu-project kayliang$ git clone ssh://git@xxxxxxx.amazonaws.com.cn:5337/xdata/SH2019GH109/chengdu-natural-resources-cli3.git
    Cloning into 'chengdu-natural-resources-cli3'...
    no such identity: gitlabnei_id-rsa: No such file or directory
    git@xxxxxxx.amazonaws.com.cn: Permission denied (publickey).
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights
    and the repository exists.

    2. 添加 config 配置文件

    vi ~/.ssh/config

    设置文件内容如下,这里要注意的是:配置的信息必须跟你在仓库界面的 ssh 的地址一致,因为有时候 http 地址跟 ssh 地址的端口是不一样的。

    地址:ssh://git@xxxxx.amazonaws.com.cn:5337/xdata/SH2019GH109/xxxxx.git

     根据上面的地址可以进行配置如下:

    # gitlab
     Host xxxxx.amazonaws.com.cn # 这里是 ssh 地址的 ip
     PreferredAuthentications publickey
     IdentityFile ~/.ssh/gitlabnei_id-rsa
     Port 5337 # 这里是 ssh 地址的端口
    
    # github
    Host github.com
     HostName github.com
     PreferredAuthentications publickey
     IdentityFile ~/.ssh/github_id-rsa
     
    # 更多配置 ...
    
    

    配置文件参数:

    第五步:测试

    测试 github 外网 ssh 地址

    ssh -T git@github.com

    输出:

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

    测试公司内网 ssh 地址

    ssh -T git@xxxx.amazonaws.com.cn
    Welcome to GitLab, @linjy!

    就表示成功的连接公司的 gitlab。

    最后

    使用 git clone 分别获取你的 github 个人项目,以及获取 gitlab 的公司内网项目:

    git clone ssh://xxxx.amazonaws.com.cn:5337/xdata/SH2020GH036/xxxx.git
    cd my-project
    touch README.md
    git add README.md
    git commit -m "add README"
    git push -u origin master
    

    因为个人项目和公司项目的账户和邮箱都不一样,记得在各自的仓库下进行配置,这样提交时的 commit 记录的用户和邮箱都是正确的,当然这一步对你是否能用 ssh 提交和获取不影响的,只是为了看 commit 记录的时候更清晰。

     git config user.name xxxx
     git config user.email xxxx@xxx.com

    小结

    本文是笔者在实践中的记录,也参考了一些网上优秀的作者经验,如有错误请指出。
    参考资料

    更进一步阅读,了解 SSH 知识:https://segmentfault.com/q/1010000000835302 和 《SSH,The Secure Shell》 书本。

    git 手册

    到此这篇关于10分钟教你本地配置多个git ssh连接的方法的文章就介绍到这了,更多相关git ssh连接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • vscode中利用git通过ssh连接github的方法
    上一篇:Git下载、安装与环境配置的详细教程
    下一篇:VSCode中画UML图的方法实现
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    10分钟教你本地配置多个git ssh连接的方法 10分钟,教你,本地,配置,