1、配置多个git远程仓库的ssh-Key切换(转自)

目前的git仓库如github都是通过使用SSH与客户端连接,如果只是固定使用单个git仓库的单个用户

(first),生成生成密钥对后,将公钥保存至github,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配对的。

但是在实际工作中,一般公司内部都有自己的独立的git仓库(gitlab.xxx.com),于是就会存在这样的情

况,在github有私人的账号first,公司的gitlab中的工作账号sencord,first和second因为环境不同,必须配置不同的username和email。所以必须对每个账号分别生成独立的公钥密钥对。在链接到github时,使用first的公钥密钥对,链接到公司内的gitlab时,使用second的公钥密钥对。假设first的密钥文件为id_rsa,second的密钥文件为id_rsa_second.

在默认情况下,ssh总是使用id_rsa密钥文件进行链接,这样对于second账号的认证自然是不通过的,

不过,要实现多帐号下的SSH key切换在客户端做一些配置即可。

首先cd到~/.ssh 使用 ssh-keygen -t -rsa -C ‘second@mail.com’(为你工作账号的邮箱地址) 生成新的

SSH key:id_rsa_second

ssh-keygen -t rsa -C 'second@mail.com' -f id_rsa_second

生成后将新的ssh public key添加到内部的gitlab仓库中, 然后在~/.ssh 目录下创建config文件,该文件用于配置私钥对应的服务器。内容如下:

Host gitlab.xxx.com ##可以随意命名,链接时使用这个名字
    HostName gitlab.xxx.com
    User git
    Port
    IdentityFile ~/.ssh/id_rsa_second

时会使用second的id_rsa_second与服务器进行连接.而链接非gitlab.xxx.com服务器时则会使用first的密钥进行链接。至此,大功告成!

注意:git根据配置文件的user.email来获取git帐号显示author信息,所以对于多帐号用户一定要

记得将user.email改为相应的email(second@mail.com)。

2、配置提交的用户名和不同服务器的不同用户名和邮箱。

全局配置:

git config --global user.name "username"

git config --global user.email "email"

该配置在 用户根目录下 ~/.gitconfig文件中配置。

如果针对具体的git工程配置单独的账号提交信息,可以再.git/config中添加如下配置

[user]
        name = XXXXX
        email = XXXXX@XXXXX.com

就可以更改提交名称了

3、Intellij idea中报错:Push failed: Failed with error: fatal: Could not read from remote repository.

修改git配置如图

选择native,原因提示写的很明显,native模式ssh提交可以使用,也就是我们配置的公钥、私钥等都可以使用,而直接built-in不是使用ssh形式连接,所以不能提交成功。

最新文章

  1. IIS性能提升
  2. 用goto做异常处理
  3. MySql学习(五) —— 数据库优化理论篇(一)
  4. LoadRunner支持的IE版本
  5. 论文笔记之:Semi-Supervised Learning with Generative Adversarial Networks
  6. searchDisplayController 时引起的数组越界
  7. [Angular 2] Router basic and Router Params
  8. The document "ViewController.xib" could not be opened. Could not read archive.
  9. 新RSS reader
  10. PHP实现无限级分类
  11. cookie 的增加,销毁,读取
  12. android studio中使用lambda
  13. JAVA Scanner的简单运用
  14. RabbitMQ安装后无法访问https://localhost:15672/ 控制台问题解决
  15. 打包加载 AssetBundle
  16. spring 之 factory-bean & factory-method
  17. 输出1到n以内的素数
  18. SQL SERVER数据库性能优化之SQL语句篇
  19. unittest单元测试框架简单说明
  20. HDU-3507 Print Article (斜率优化)

热门文章

  1. Ubuntu上部署一个简单的Java项目
  2. Ubuntu上如何卸载Vmware产品
  3. JavaScript-数据引用类型对象
  4. TCP/IP协议基础(转)
  5. Android性能优化方法(四)
  6. log4net详细配置说明
  7. 图层的transform属性
  8. haskell debug
  9. 控制反转(Inversion of Control)之我的理解
  10. 单元测试中使用Moq对EF的DbSet进行mock