多个github账号时,本地配置ssh-key

Posted 小葛师兄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多个github账号时,本地配置ssh-key相关的知识,希望对你有一定的参考价值。

由于需要,申请了多个github账号,但是都是在同一台电脑上操作,原来只有一个账号进行ssh操作时,推送没有遇到什么问题,现在有多个账号了,推送的时候就有点懵逼了,下面是根据网上的资料来进行多个账号,在本地配置ssh-key的操作过程。

单个账号的 ssh-key 配置可查看文章:github设置添加ssh

一、本地生成不同账号的秘钥信息

ssh-keygen -t rsa -C "xxx1@xx.com"  #账号1

ssh-keygen -t rsa -C "xxx2@xx.com" #账号2

邮箱替换成自己github账号的绑定邮箱。

运行上面命令后会让你输入一个文件名,用于保存生成的 SSH key 代码,如:

CopyGenerating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]

如果是只有一个账号的时候,可以默认保存。

多个账号的时候可以在后面输入自己自定义的文件名,用来区分不同账号生成的秘钥。

输入文件名后,回车继续往下会提示你输入密码,可直接回车不输入密码。

多个账号都是同样的操作,操作结束后,就会在 ~/.ssh目录下生成多个秘钥。

二、将公钥添加到不同的github账号上

分别登陆自己github账号,然后将生成的公钥(.pub结尾的文件)添加到对应的账号下:

Settings —> SSH and GPG keys

三、配置 config 文件

单个账号时不需要配置,默认即可,多个账号时进行配置。

查看 ~/.ssh 文件下是否存在 config 文件,不存在的话新建一个,填写对应的配置信息:

Host coder.github.com  // 别名
HostName github.com // 服务器地址
User javage // github用户名
IdentityFile  ~/.ssh/coder // 对应的秘钥地址

Host tester.github.com
HostName github.com
User tester
IdentityFile  ~/.ssh/tester

四、添加 key 信息到 ssh-agent 中

因为默认只读取的默认生成的 id_rsa,为了让他能读取到修改过后的秘钥信息,需要添加到 ssh-agent中:

ssh-add ~/.ssh/coder // 对应的秘钥文件

ssh-add ~/.ssh/tester

在执行命令中如果提示:

Could not open a connection to your authentication agent.

需要执行下如下命令:

ssh-agent bash

然后继续执行之前的命令即可。

五、测试是否配置正确

ssh -T git@coder.github.com

ssh -T git@tester.github.com

这里使用的是别名来进行访问,git 可以通过 config 配置的信息来请求对应的账号。

  • 请求成功提示:
$ ssh -T git@coder.github.com
Hi javaGe! You\'ve successfully authenticated, but GitHub does not provide shell access.

$ ssh -T git@tester.github.com
Hi testerggf! You\'ve successfully authenticated, but GitHub does not provide shell access.

  • 克隆项目:
$ git clone git@tester.github.com:testerggf/studygit.git
Cloning into \'studygit\'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
Receiving objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0

  • 拉取项目:
git pull git@coder.github.com:javage/javaGe.github.io.git
  • 推送项目:
git push git@coder.github.com:javage/javaGe.github.io.git

以上是关于多个github账号时,本地配置ssh-key的主要内容,如果未能解决你的问题,请参考以下文章

Git配置多个github账号

Windows下Git多账号ssh-key(复制自己用)

MAC下配置多个SSH-KEY

Git配置多个多个账号

Git关于git的ssh-key:解决本地多个ssh-key的问题

git如何配置多个ssh-key