在服务器上生成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  ~/.ssh/config
chmod /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/下的文件验证

git 指定自己的sshkey的更多相关文章

  1. bitbucket/github同一站点上多个git代码仓库的ssh-key配置

    由于项目开发需要,可能多个项目都放在bitbucket或者github上面,每个项目都有独立的sshkey,这就会造成push时的系统默认取~/.ssh/id_rsa的问题. 最简单的解决方法是这样: ...

  2. git 配置多个SSH-Key(转)

    摘要 我们在日常工作中会遇到公司有个gitlab,还有些自己的一些项目放在github上.这样就导致我们要配置不同的ssh-key对应不同的环境. 目录[-] 1,生成一个公司用的SSH-Key 2, ...

  3. git 指定要提交的ssh key

    问题描述 ssh具有-i选项,用于告知在验证时使用哪个私钥文件: -i identity_file Selects a file from which the identity (private ke ...

  4. git:多个sshkey配置

    克隆项目: 使用git clone +项目.git地址 例如: 创建SSH Key: ssh-keygen -t rsa -C +邮箱地址 sshkey自定义保存:创建后在第二步(enter file ...

  5. Git安装及配置SSH-Key

    下载Git 打开 https://git-scm.com/downloads 选择windows, 下载并安装. 配置全局用户名及邮箱 配置用户名 git config --global user.n ...

  6. git 指定用户名密码更新代码

    使用git 更新代码 如何修改git 的密码一直令人费解,百度一堆也没给出答案.下面给一种替代方案. 例如:我们正常的代码地址 http://172.16.210.112/project/test.g ...

  7. Ubuntu git 安装、生成sshkey、克隆、切换分支

    #1.安装git apt-get install git; #2生成公钥私钥文件 2.配置git账户: git config --global user.name "yourname&quo ...

  8. centos上为新创建的用户(git)指定根目录并生成公钥和私钥

    1.修改用户的根目录 vim /etc/passed 2.su git 3.ssh-keygen -t rsa ssh-keygen -t rsa 4.如图所示,如果要实现无密码访问git仓库,把公钥 ...

  9. git 指定从其他分支拉取commit

    git cherry-pick commit-id  (github 上的短号)

随机推荐

  1. 异常-throw的概述以及和throws的区别

    package cn.itcast_06; /* * throw:如果出现了异常情况,我们可以把该异常抛出,这个时候的抛出的应该是异常的对象. * * throws和throw的区别(面试题) thr ...

  2. 删库?半个DBA的跑路经验总结

    0. 国内呆不下了,赶紧出国 首先,不要选动车,要选最近的一班飞机,尽快出国,能走高速走高速,不然选人少的路线. 没错,我们 DBA 都是常备护照的. 切记,注意看高德地图实时路况. 我们有个前辈就是 ...

  3. 01 初识HTML

    HTML是什么? 超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言. 本质上是浏览器可识别的规则,我们按照规则写网页,浏览器根据规则渲染我们 ...

  4. 异常-User class threw exception: java.lang.IllegalStateException: Cannot call methods on a stopped SparkContext.

    1 详细信息 User class threw exception: java.lang.IllegalStateException: Cannot call methods on a stopped ...

  5. 全自动链接克隆KVM虚拟机

    virt-clone这个命令是基于全克隆的,也就是拷贝虚拟磁盘文件和虚拟配置文件来实现的完整克隆,速度慢,占用空间多 kvm软件包中并没有实现全自动链接克隆的命令或工具,只能手动实现,于是我决定写一个 ...

  6. kvm虚拟机热迁移

    一.热迁移描述: 相比KVM虚拟机冷迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机热迁移无需拷贝虚拟磁盘文件,但是需要迁移到的宿主机之间需要有相同的目录结构虚拟机磁盘文件,也就是共享存储,本文这部分内 ...

  7. 韦东山嵌入式Linux学习笔记03--如何搭建软件环境

    1. 从网上下一个虚拟机,比如vmvare station 2.下一个ubuntu镜像回来安装,  我下了14.04来安装.参考链接:  https://blog.csdn.net/qq1326702 ...

  8. 2019/9/18 IIS服务器 ftp站安装:隔离模式

    net user ftp1  /add 添加两个账户 在d盘下创建ftp站的文件夹ftptest,进入文件夹,创建文件夹LocalUser,进入LocalUser 分别创建administrator ...

  9. c++ 数组 结构体

    接下来的一点时间我将会记录下我看的c++的一些心得体会,人贵在坚持,希望我可以一直坚持下去!!Go Fighting!   一.c++复合数据类型: 数组类型的一些注意事项: sizeof的用法: 当 ...

  10. Django学习系列15:把POST请求中的数据存入数据库

    要修改针对首页中的POST请求的测试.希望视图把新添加的待办事项存入数据库,而不是直接传给响应. 为了测试这个操作,要在现有的测试方法test_can_save_a_post_request中添加3行 ...