2

我对这些东西还很陌生——我有一个专业的 github 公司帐户,该帐户是在过去几个月中首次设置的。最近,我一直在研究一些 Rails 教程。我创建了一个教程存储库并在我的个人帐户下推送,没有任何麻烦。

但是,由于某种原因,在遵循我正在尝试处理的第二个项目的步骤之后,我收到了以下错误消息:

ERROR: Permission to <username>/<projectname>.git denied to <businessaccount>.
fatal: The remote end hung up unexpectedly

为什么它试图使用我的企业帐户进行此回购?以及如何让它取而代之的是我的个人帐户信息?

谢谢!

4

1 回答 1

2

git 用来向远程服务器进行身份验证的帐户信息可以作为远程 URL 的一部分提及。

<USERNAME>@<REMOTE_HOSTNAME>:<REMOTE_REPO_URL>

如果您不提供任何用户名,git 会自动开始使用您当前登录的用户的用户名。

不幸的是,Github 不允许为多个帐户使用同一组 SSH 密钥。因此,您需要为您的个人 github 帐户生成另一组 SSH 密钥(即密钥对)。

  1. 为您的个人帐户生成新的 ssh 密钥对

    ssh-keygen -t rsa -f ~/.ssh/id_rsa.personal -C "Keypair for Personal Github account"
    
  2. 将以下行添加到您的~/.ssh/config文件中,以使 SSH 在通过以下方式引用主机时使用新的密钥对personal.github.com

    Host personal.github.com
    User git
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa.personal
    
  3. 对于您计划使用的每个 repo,使用个人 github 帐户,确保personal.github.com在 URL 中使用主机名而不是github.com. 此外,git@用户名部分可以省略,因为我们已经在~/.ssh/config. 因此,其中任何一个现在都应该可以工作。

    git clone personal.github.com:keecham/blacktie.git
    git clone git@personal.github.com:keecham/blacktie.git
    
  4. 您的工作 github 帐户和密钥以这种方式保持不变,不应受到影响。

于 2013-03-25T20:52:42.797 回答