在服务器上生成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. vue运行碰到的问题

    Expected indentation of 0 spaces but found 2 解决方案: 文件中加入"indent": ["off", 2]就可以了 ...

  2. luogu题解 P1462 【通往奥格瑞玛的道路】二分+spfa

    题目链接: https://www.luogu.org/problemnew/show/P1462 思路: 又是一道水题,很明显二分+最短路 而且这道题数据非常水,spfa有个小错误居然拿了91分还比 ...

  3. Centos7:mysql5.6安装,配置及使用(RPM方式)

    1.首先安装好jdk环境,本机所用环境为jdk1.8 2.卸载MariaDB(Centos7自带)与Mysql 2.1卸载:MariaDB #rpm -qa | grep -i mariadb //查 ...

  4. N4语法

    第一期  授受关系 这里讲的授受关系是指“物的收受”也就是前后两个主体之前的“物的收受”. 请看以下三个基本句型:(从接收者B来分析) 1. AはBに-を         あげる(平辈.晚辈) (A给 ...

  5. 前端开发 | 尝试用Markdown写一下近几个月的总结

    近期总结 回顾 半年前 半年前,接触了前端一年多(工作半年)的我了解的东西只有下面这些.因为在公司里的工作就是切静态页,捣鼓CMS. HTML (比较简洁的编写HTML) CSS/CSS3 (PC兼容 ...

  6. JS 深拷贝/合并

    var mix = function(r, s, ov) { if (!s || !r) return r; if (ov === undefined) ov = true; for (var p i ...

  7. Java I/O(二)其他常用的输入输出流PrintStream等、标准流重定向

    四.FilterOutputStream.PrintStream PrintStream是继承自FilterStream类的,例如标准输出流System.out就是著名的PrintStream类对象. ...

  8. VCL界面控件DevExpress VCL Controls v19.1.3全新来袭

    DevExpress VCL Controls是 Devexpress公司旗下最老牌的用户界面套包.所包含的控件有:数据录入,图表,数据分析,导航,布局,网格,日程管理,样式,打印和工作流等,让您快速 ...

  9. python广度遍历文件夹

    import os from collections import deque path = r"E:\Python" queue = deque([])#队列 queue.app ...

  10. vue data数据恢复初始化

    Object.assign(this.$data, this.$options.data())