zoukankan      html  css  js  c++  java
  • git 指定自己的sshkey

    在服务器上生成ssh-key以后,需要把公钥放在github上,但是,这个公钥只能放在一个账户里,如果放在第二个账户里,就会提示这个key已经被用了,这是前提

    一个可能的场景是这样的:

      你们公司有好几个项目都托管在git上,然后有一台公用的服务器,这时候,你的同事在服务器上搞了一套ssh-key,添加到他的项目里用于ssh验证拉代码了,这时候你也用到这台服务器,然后把公钥往自己的项目里加的时候,发现加不进去了,这时候最暴力的解决方法就是,你重新生成一套加在自己的仓库里,但是这么搞的化,你同事之前添加的那个肯定是不能用了,然后他发现自己的不能用了,上了服务器一看key被改了,他又重新生成一下,然后你又不能用了,如此反复,相爱相杀。

    明智的解决方法是这样的,让git去服务器拉代码的时候使用不同的ssh-key就可以了,具体做法如下:

    1.生成你自己的ssh-key

    ssh-keygen -t rsa -P '' -f ./id_rsa_myself

    这个命令会在当前目录生成  id_rsa_myself 和id_rsa_myself.pub 的一对,特别注意的是一定要指定生成文件的存放路径,要么去默认的地方了(~/.ssh/),那就把你同事的给覆盖了

    2.这时候就可以添加公钥了,把 id_rsa_myself.pub里的东西添加到github上,这些基本操作就不说具体步骤了

    3.把 id_rsa_myself 这个私钥存起来,放哪里都无所谓,也可以直接放在 ~/.ssh/ 目录里,我习惯放在自己家目录下,比如  /home/xiaol/ssh/id_rsa_myself

    4.在~/.ssh/目录常见一个config文件,内容如下

    cd     ~/.ssh/
    vi config
    
    Host myself
        HostName bitbucket.org
        User git
        PreferredAuthentications publickey
        IdentityFile /home/xiaol/ssh/id_rsa_myself

    5. 这个config和刚才存起来的id_rsa_myself需要权限为600(~/.ssh/系统生成的就是600,改就好了,不改报权限问题)

    chmod 600 ~/.ssh/config
    chmod 600 /home/xiaol/ssh/id_rsa_myself

    配置过程就完成了

    下面说下使用

    配置之前你clone代码:

    git clone git@bitbucket.org:xxx/xxx.git

    配置之后你clone代码:

    git clone git@myself:xxx/xxx.git

     至于为什么,你对着新建的那个config文件琢磨琢磨就知道了

    这种解决方法不影响你同事,config中没配的时候会用 ~/.ssh/下的文件验证

  • 相关阅读:
    Spring-3
    Spring-2
    Spring-1
    SpringMVC-视图解析器
    SpringMVC起步
    jsp中引用的jstl 和fmt标签-详解
    Spring-JDBCTemplate介绍
    Spring框架详解介绍-基本使用方法
    VIP邮箱有什么好处,北京外贸邮箱品牌原来这个最好用?
    网易企业邮箱申请,申请企业邮箱流程分享~
  • 原文地址:https://www.cnblogs.com/413xiaol/p/11396488.html
Copyright © 2011-2022 走看看