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/下的文件验证

  • 相关阅读:
    POJ 1328 Radar Installation
    POJ 1700 Crossing River
    POJ 1700 Crossing River
    poj 3253 Fence Repair (贪心,优先队列)
    poj 3253 Fence Repair (贪心,优先队列)
    poj 3069 Saruman's Army(贪心)
    poj 3069 Saruman's Army(贪心)
    Redis 笔记与总结2 String 类型和 Hash 类型
    数据分析方法有哪些_数据分析方法
    数据分析方法有哪些_数据分析方法
  • 原文地址:https://www.cnblogs.com/413xiaol/p/11396488.html
Copyright © 2011-2022 走看看