zoukankan      html  css  js  c++  java
  • Git多账号配置,同一电脑多个ssh-key的管理

    为什么有这种需求?

    在我们开发过程中,可能会遇到使用同一台机器,既要向公司git服务器提交代码,也要向gitlib或者gitee等
    git仓库提交代码,2个仓库设置的用户名信息,不一样,此时需要用到多个ssh-key管理.主要包含以下几个步骤.

    生成对应的私钥公钥

    1. 生成github.com对应的私钥公钥

    ssh-keygen -t rsa -C xxx@126.com -f ~/.ssh/github_rsa
    
    

    **2. 同样的方式生产git.oschina.net的私钥公钥

    ssh-keygen -t rsa -C xxx@163.com -f ~/.ssh/id_rsa_github
    
    
    把上面得到的文件拷贝到git默认访问的.ssh目录(默认就存在当前登录用户文件夹.ssh目录)

    如图所示

    把github对应的公钥和oschina对应的公钥上传到服务器
    在.ssh目录创建config文本文件并完成相关配置(最核心的地方)

    每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostName和IdentityFile两个属性即可

    Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如:
    Host mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为mygithub
    git clone git@mygithub:cary/sample.git

    HostName           这个是真实的域名地址
    IdentityFile          这里是id_rsa的地址
    PreferredAuthentications   配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
    User            配置使用用户名
    

    ** config文件配置如下:**

    #gitee
    Host gitee.com
    HostName gitee.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_oschina
    User cary
    
    #github
    Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_github
    User cary
    
    
    打开Git Bash客户端(管理员身份运行)执行测试命令测试是否配置成功(会自动在.ssh目录生成known_hosts文件把私钥配置进去)

    **使用ssh -T 校验

    ssh -T git@gitee.com
    如果成功会显示如下:
    Hi cary! You've successfully authenticated, but GITEE.COM does not provide shell access.
    
    
  • 相关阅读:
    HDU 2767:Proving Equivalences(强连通)
    POJ 2828: Buy Tickets(线段树)
    HRBUST 2078:糖果(模拟,贪心)
    大视野 1016: [JSOI2008]最小生成树计数(最小生成树)
    HRBUST 2064:萌萌哒十五酱的宠物~(最近公共祖先LCA)
    HRBUST 2072:萌萌哒十五酱的礼物~(树,字典树)
    分组 F查询 Q 查询
    连表查询 复习
    django 多表操作
    orm 表单操作
  • 原文地址:https://www.cnblogs.com/weiguo21/p/10573234.html
Copyright © 2011-2022 走看看