由于需要,申请了多个账号,但是都是在同一台电脑上操作,原来只有一个账号进行操作时,推送没有遇到什么问题,现在有多个账号了,推送的时候就有点懵逼了,下面是根据网上的
由于需要,申请了多个github账号,但是都是在同一台电脑上操作,原来只有一个账号进行ssh操作时,推送没有遇到什么问题,现在有多个账号了,推送的时候就有点懵逼了,下面是根据网上的资料来进行多个账号,在本地配置ssh-key的操作过程。
单个账号的 ssh-key 配置可查看文章:github设置添加ssh
一、本地生成不同账号的秘钥信息ssh-keygen -t rsa -C "xxx1@xx.com"? #账号1ssh-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.comHostName github.comUser testerIdentityFile ~/.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.comssh -T git@tester.github.com
这里使用的是别名来进行访问,git 可以通过 config 配置的信息来请求对应的账号。
请求成功提示:
$ ssh -T git@coder.github.comHi javaGe! Youve successfully authenticated, but GitHub does not provide shell access.$ ssh -T git@tester.github.comHi testerggf! Youve successfully authenticated, but GitHub does not provide shell access.克隆项目:
$ git clone git@tester.github.com:testerggf/studygit.gitCloning 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多个github账号时,本地配置ssh-key