使用辅助键推送到受邀回购

Posted

技术标签:

【中文标题】使用辅助键推送到受邀回购【英文标题】:Use secondary key to push to invited repo 【发布时间】:2021-12-18 01:13:53 【问题描述】:

我的电脑上有两个 github 帐户:一个用于工作,一个用于我的个人帐户。 (我在mac上) 我的 .ssh 配置文件:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Host github.com-personalAccount
  HostName github.com
  User git
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_personal

这很好用。我将 ssh 密钥添加到我的 github 帐户。我可以很好地推送到我的个人仓库,也可以推送到工作仓库。

现在,我已被邀请作为第三个 repo 的合作者,并且我已经接受了邀请。我想我可以使用我的个人 ssh 密钥:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Host github.com-personalAccount
  HostName github.com
  User git
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_personal

Host github.com-otherUserAccount
  HostName github.com
  User git
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_personal

然后,在 repo 中:

git remote add origin git@github.com:otherUserAccount/redacted.git
git add .
git commit -m "Initial commit"
git push -u origin master

但它不起作用。我收到此错误:

ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我已经检查了两次和三次。回购地址正确。

请帮忙!

提前致谢!

【问题讨论】:

git remote add origin git@github.com 你怎么猜ssh 猜出使用哪个键?提示:git 不传递给 ssh 存储库名称,它只传递 user@hostname 抱歉,我不明白您的评论。如果您在我的.ssh 配置文件正下方查看脚本的第一行,我已经添加了远程源。你是说我也需要在其他地方做吗? 他的意思是:git@github.com:otherUserAccount/redacted.git 应该读作github.com-otherUserAccount:otherUserAccount/redacted.git。请注意主机名在 URL 中冒号之前的内容中的长度。 啊。接得好。这是一个错字,但@phd 指出它让我找到了解决方案。 实际上,@phd 这已经足够接近正确答案了,如果您将其作为回复发布,我将接受它作为解决方案。 【参考方案1】:

Git 不传递给 SSH 存储库名称,它只传递 user@hostname。因此,要让 SSH 使用正确的密钥,Git 必须传递从远程 URL 获取的正确主机名。对于您的.ssh/config,远程 URL 必须是(就 Git 命令而言):

git remote set-url origin git@github.com-personalAccount:personalAccount/personalRepo.git

git remote set-url origin git@github.com-otherUserAccount:otherUserAccount/otherRepo.git

【讨论】:

以上是关于使用辅助键推送到受邀回购的主要内容,如果未能解决你的问题,请参考以下文章

无法推送到 chiselapp 上托管的化石回购

推送到 GitHub - 推送到...(回购)过早的 EOF 失败

Git将分支推送到远程回购

text 初始化和推送到新的远程回购

播放 WebSockets 服务器推送示例

将值推送到辅助数组javascript