我对这件事还很陌生——我有一个专业的 github 公司帐户,是在过去几个月里首次建立的。最近,我一直在学习一些 Rails 教程。我创建了一个教程存储库并毫无问题地推送到我的个人帐户下。
但是,由于某种原因,在按照我尝试处理的第二个项目的步骤进行操作后,我收到此错误消息:
ERROR: Permission to <username>/<projectname>.git denied to <businessaccount>.
fatal: The remote end hung up unexpectedly
为什么它尝试使用我的企业帐户来执行此存储库?我该如何让它使用我的个人帐户信息?
谢谢!
最佳答案
git 使用远程服务器进行身份验证的帐户信息可以作为远程 URL 的一部分提及。
<USERNAME>@<REMOTE_HOSTNAME>:<REMOTE_REPO_URL>
如果您不提供任何用户名,git 会自动开始使用您当前登录用户的用户名。
不幸的是,Github 不允许多个帐户使用同一组 SSH key 。因此,您需要为您的个人 github 帐户生成另一组 SSH key (即 key 对)。
为您的个人帐户生成新的 ssh key 对
ssh-keygen -t rsa -f ~/.ssh/id_rsa.personal -C "Keypair for Personal Github account"
将以下行添加到您的
~/.ssh/config
文件中,以使 SSH 在通过personal.github.com
引用主机时使用新的 key 对:Host personal.github.com User git HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa.personal
对于您计划使用个人 github 帐户的每个存储库,请确保在 URL 中使用主机名
personal.github.com
而不是github.com
。此外,git@
用户名部分可以省略,因为我们已经在~/.ssh/config
中提到过。所以现在这些都应该可以工作了。git clone personal.github.com:keecham/blacktie.git git clone <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cea9a7ba8ebeabbcbda1a0afa2e0a9a7baa6bbace0ada1a3" rel="noreferrer noopener nofollow">[email protected]</a>:keecham/blacktie.git
您的工作 github 帐户和 key 不会受到影响,因此不会受到影响。
关于git - 第二个帐户/ repo 推送问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15624410/