github多个账号配置ssh

为什么有这个需求

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

遇到的问题

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

生成密钥

执行命令 ssh-keygen -t rsa -b 4096 -C "pengyou@gmail.com" -f id_rsa_pengyou会生成文件~/.ssh/rsa_pengyou~/.ssh/rsa_pengyou.pub

配置

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

测试

第一步:先测试ssh是否配置正确 ssh -T git@github.com -i ~/.ssh/id_rsa_pengyou。显示·! You’ve successfully authenticated, but GitHub does not provide shell access.·表示配置成功。
第二步:尝试clone git clone git@github.com: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改为此配置 如:git@github.com/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 pengyou@gmail.com --local
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值