authentication - GitHub 多个帐户 : Can authenticate SSH with both accounts, 但无法克隆一个存储库

标签 authentication github ssh

我在我的工作电脑上,它已经 [成功] 配置为连接到我们的 GitHub 帐户并分别使用 SSH 和 GPG key 验证我们的提交。在我开始改变之前,我的原始 ~/.ssh/config 文件是这样的:

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

为了添加我的个人帐户,我生成了一个新的 SSH key (~/.ssh/id_rsa_personal),将 .pub 部分添加到我的个人 GitHub 帐户,然后修改我的~/.ssh/config 文件如下:

# Default
Host *
 AddKeysToAgent yes
 UseKeychain yes

# Personal
Host github.com-PERSONAL
 HostName github.com
 User git
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/id_rsa_personal

# Work
Host github.com
 HostName github.com
 IdentityFile ~/.ssh/id_rsa

此更改后,我仍然可以毫无问题地与我的工作帐户进行交互——一切都没有改变。但是,当我尝试使用

与我的个人帐户进行交互时
git clone git@github-PERSONAL:nikblanchet/myrepository.git

,我收到一条错误消息:

Cloning into 'myrepository'...
ssh: Could not resolve hostname github-personal: nodename nor servname provided, or not known
fatal: Could not read from remote repository.

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

为了缩小问题范围,我决定尝试简单的 SSH 身份验证

ssh -T git@github.com-PERSONAL

,令人惊讶的是,它奏效了!

Hi nikblanchet! You've successfully authenticated, but GitHub does not provide shell access.

(按预期运行 ssh -T git@github.com 通过我的工作帐户进行身份验证。)

所以现在我迷路了。为什么 ssh -T 可以解析主机名而 git clone 不能?我错过了什么?

最佳答案

您的网址应该是:

github.com-PERSONAL:nikblanchet/myrepository.git

你先试过

git@github-PERSONAL:nikblanchet/myrepository.git

这就是它无法解析 github-PERSONAL 的原因,它在您的配置文件中。
github.com-PERSONAL 是。

注意:无需添加 git@ 部分:您的配置文件已经指定了 User git

关于authentication - GitHub 多个帐户 : Can authenticate SSH with both accounts, 但无法克隆一个存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47212303/

相关文章:

python - 使用 Python 通过 SSH 隧道连接到远程 PostgreSQL 数据库

git - 将 gitea 绑定(bind)到 localhost 地址以进行隧道传输?

php - ssh 连接在 php 中不起作用

Symfony2 登录路由不断重定向到 https

svn - 使用 Active Directory 用户从 CCNet (CruiseControl.net) 访问 SVN 存储库

git - 公共(public) GIT-SVN 创建的存储库的公共(public)和私有(private)分支的推荐工作流

GitHub 项目仓库中的 "un-clickable"

facebook - 应用程序配置不允许给定 URL

php - 如何以编程方式登录/验证用户?

github - 为什么 GitHub 可能会报告公钥无效?