我自己有一个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/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 成功。
配置好后,提交消息中显示的我朋友得名称
git config user.name pengyou --local
git config user email pengyou@gmail.com --local