`
chiyx
  • 浏览: 274984 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

阅读更多

转载地址:http://omiga.org/blog/archives/2269

 

目前的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 22
    IdentityFile ~/.ssh/id_rsa_second

 执行

git clone git@gitlab.xxx.com:second/test.git

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

 

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

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

 

 

2
0
分享到:
评论
4 楼 wushexin 2015-08-06  
Bad owner or permissions on $HOME/.ssh/config
The ssh with RHEL 4 is a lot more anal about security checking. In my case, it was the fact that $HOME/.ssh/config was group-writable which was causing it to barf. To fix:

$ cd ~/.ssh
$ chmod 600 *
Note that this error message is kind of stupid, since $HOME/.ssh had permissions 700 on it, and $HOME had 750 permissions on it. If any process managed to evade those permissions, changing the permissions on the config file would be similarly defeated.
3 楼 chiyx 2014-04-23  
十井_ 写道
都是程序员 整篇文章都copy了 为什么就不能多加个转呢?


这篇文章当时是刚好是为了方便自己下次设置的时候不用到处找而记录的,忘记附上转载额,
2 楼 十井_ 2014-04-22  
http://omiga.org/blog/archives/2269
1 楼 十井_ 2014-04-22  
都是程序员 整篇文章都copy了 为什么就不能多加个转呢?

相关推荐

    在TwinCAT3中使用Git进行版本管理-整理版 1

    在 TwinCAT3 中使用 Git 进行版本管理,主要包括以下几个部分:Git 的下载和安装、将 TC3 工程中的 PLC 部分添加到本地仓库、使用 Git 进行版本管理、连接远程 GitHub 上传代码。 Git 的下载和安装 ---------------...

    git+ssh ubuntu 安装配置笔记

    假设您收到了多个公钥文件,存储于`/home/git/.ssh/`目录下: ```bash cat /home/git/.ssh/id_rsa.client.pub >> ~/.ssh/authorized_keys cat /home/git/.ssh/id_rsa.carol.pub >> ~/.ssh/authorized_keys cat ...

    git代码操作

    **Git** 是一个分布式版本控制系统,用于跟踪计算机文件的更改,并协调多个用户之间的工作。它最初由Linus Torvalds于2005年创建,目的是作为一种改进的工具来处理Linux内核源代码的开发。Git具有高效性、灵活性和...

    git命令整理

    - **说明**:用于查看远程仓库的地址信息,`-v`选项显示更多信息。 #### 推送分支 - **命令**: ```bash git push origin master ``` - **说明**:用于将本地分支推送到远程仓库。 #### 关联本地分支与远程分支...

    git基础命令行指令

    Git是一种分布式的版本控制系统,用于追踪计算机文件的变化并协调多个用户间的协作。相比于其他版本控制系统(如SVN),Git具有以下显著特点: - **基于文件快照的形式记录版本**:Git记录每次提交时文件的状态快照...

    Git 基本使用(常用命令)

    使用`git fetch`获取远程仓库中的分支信息,再使用`git checkout`切换到相应的分支。 - **模拟多人协作** 通过创建多个本地分支,并模拟不同开发者的提交过程,最后将这些分支合并到主分支,可以模拟多人协作...

    Git基本使用

    git remote add origin <远程仓库URL> ``` - **断开与远程仓库的链接**: ```bash git remote remove origin ``` - **查看远程仓库信息**: ```bash git remote -v ``` - **将本地仓库推送到远程仓库**:...

    项目实践常用git指令总结.pdf

    3. **Git中SSH Key的生成** - 在Shell(如Git Bash)中使用`ssh-keygen`命令生成SSH密钥,指定邮箱地址,并将公钥添加到GitHub账户设置中,以便安全地进行身份验证。 4. **多人协同工作模式** - **推送修改**:...

    Git使用说明

    **3.3 申请一个远程仓库** - **操作说明**: 1. 通常情况下,您需要登录到您的代码托管服务(如GitHub、GitLab等)。 2. 按照服务提供商提供的指南创建一个新的远程仓库。 3. 获取该远程仓库的URL以便后续操作。 #...

    git常用操作命令

    - **克隆远程仓库**:使用 `git clone` 命令克隆仓库到本地。 ```shell git clone https://ssl.izenesoft.cn/projects_navigation ``` ##### 日常操作 - **分支操作** - **创建分支**:基于现有分支创建新的...

    有关git的相关详细文档

    - 在使用Git之前,通常需要配置SSH Key以便于身份验证。具体步骤如下: - 打开命令行工具(如Git Bash),执行`ssh-keygen -t rsa -C "your_email@example.com"`生成SSH Key。 - 将生成的公钥内容复制到目标代码...

    git常用命令总结介绍

    可以一次提交多个文件:`$ git commit -m "提交信息" -a` 4. **版本控制**: 查看提交历史,回退版本或撤销修改。 ```shell $ git log # 查看完整历史 $ git log --pretty=oneline # 简洁历史 $ git reflog #...

    GIT 安装与使用

    - **代码备份**: 通过本地仓库与远程仓库的同步,确保代码的安全性。 - **协同开发**: 支持多用户协作,通过分支管理实现团队成员之间的代码合并。 - **版本还原**: 可以轻松恢复到任意历史版本,便于调试错误。 - *...

    GIT使用说明

    本文详细介绍了Git的基本概念、GitFlow工作流的应用、Git和EGit工具的使用、GitLab的注册与SSH Key配置流程以及分支管理的具体实践。通过对这些知识点的学习,开发者可以更好地理解和应用Git进行高效版本控制与团队...

    项目指南(含Git、数据库、IDEA)1

    如果你已经fork了项目,可以使用`git remote add origin-hys https://github.com/ShengAndXian/TAS.git`命令添加一个新的远程仓库,名为origin-hys,指向你的forked仓库。 6. 创建与切换分支 - `git branch ...

    Git详细教程

    1. 创建SSH Key:使用`ssh-keygen`命令生成SSH密钥对,公钥(id_rsa.pub)用于添加到GitHub账户,以便安全地连接远程仓库。 2. 在GitHub设置中添加SSH Key,将id_rsa.pub文件内容粘贴到相应位置。 3. `git remote ...

    Git_client_win部署

    6. 在进行版本控制操作之前,常常需要配置SSH Key以安全地与远程仓库交互。使用以下命令生成SSH Key: ssh-keygen -t rsa -C "邮箱地址" 这里的邮箱地址应该与第4步中配置的邮箱地址一致,生成的SSH Key将存放在...

Global site tag (gtag.js) - Google Analytics