github多个账号配置ssh

为什么有这个需求

我自己有一个github账号,用于自己的日常开发。然后帮朋友开发一个项目,他要求使用他的账号提交和推送代码。

遇到的问题

我已经在本地配置了ssh用于提交和推送github代码。我使用朋友的账户登录登录了github并尝试在他账户的ssh中配置我已有的公钥(id_rsa.pub),然后github提示我,此密钥已被使用。那这样必须得重新生成密钥。

生成密钥

执行命令 ssh-keygen -t rsa -b 4096 -C "[email protected]" -f id_rsa_pengyou会生成文件~/.ssh/rsa_pengyou~/.ssh/rsa_pengyou.pub

配置

~/.ssh/rsa_pengyou.pub内容复制到github账号得ssh配置中。

测试

第一步:先测试ssh是否配置正确 ssh -T [email protected] -i ~/.ssh/id_rsa_pengyou。显示·! You’ve successfully authenticated, but GitHub does not provide shell access.·表示配置成功。
第二步:尝试clone git clone [email protected]:xxxxx/xxx.git。提示“未找到仓库,请确认是否有访问权限。

正确配置ssh(重要)

增加`~/.ssh/config``文件,配置如下

# github
# 我自己账号得key
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
	
# 这个是新加的key, 
# github_2
Host github_1.com  # 在写git地址是需要把github.com改为此配置 如:[email protected]/xxxxxx 改为 git@github_1.com/xxxxxx
HostName github.com	
PreferredAuthentications publickey		
IdentityFile ~/.ssh/id_rsa_github	

特别主要上面第二个配置得Host 。在clone得时候需要将github.com改为这个host,请看上面配置得注释。

再次测试

git clone git@github_1.com:xxxxx/xxx.git ,clone 成功。

为仓库配置user.name 和 user.email

配置好后,提交消息中显示的我朋友得名称

git config user.name pengyou --local
git config user email [email protected] --local

你可能感兴趣的:(github,ssh,git)