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

  • 相关阅读:
    Ubuntu 8.04安设nVidia新版表现驱动
    特性化设置你的linux环境
    Ubuntu 8.04 去失踪文泉驿的点阵字形的方法
    Fedora Nightlife项目 扶助较劲争论机的空闲
    Ubuntu显卡驱动不精确,进入黑屏的处置装备
    Linux中翻开带flash网页主动封锁的处理办法
    Firefox 3 Alpha 5
    Ubuntu 8.04无法正常关机成就处置惩罚
    Redhat Enterprise Linux 5.2 公布了
    KOffice 1.6.3
  • 原文地址:https://www.cnblogs.com/413xiaol/p/11396488.html
Copyright © 2011-2022 走看看