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

  • 相关阅读:
    USACO--2.1The Castle
    浅谈python字符串存储形式
    面向对象——一起来复习托付与事件!
    数据结构——算法之(032)(求两个串中的第一个最长子串)
    读《浪潮之巅》有感
    关于android 怎样安装 assets文件下的apk
    每日一小练——求质数
    怎样使破解网页的禁止复制黏贴
    Angularjs Nodejs Grunt 一个样例
    《TCP/IP具体解释卷2:实现》笔记--域和协议
  • 原文地址:https://www.cnblogs.com/413xiaol/p/11396488.html
Copyright © 2011-2022 走看看