我目前需要完成以下任务:我们的CI服务器需要使用不同的SSH(Deploy/Checkout)密钥访问GitHub上的第二个仓库,而不是主项目仓库(GitHub deploy密钥仅适用于单个仓库。两个仓库=>相同主机的两个SSH密钥。因此使用别名的想法)。然而,我们目前遇到了一些问题,我相信我只是缺少了一些细节。
假设我们的git仓库URL如下:
我们将其更改为:
我测试了我的设置并运行了以下命令:
假设我们的git仓库URL如下:
git@gitub.com:myorg/somerepo.git
我们将其更改为:
git@gitub-second-account:myorg/somerepo.git
然后我调整了我的.ssh/config
文件,使用引入的主机别名github-second-account
并将其映射回github.com
:
# Default GitHub user
Host github.com
HostName github.com
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
# Second account alias
Host gitub-second-account
HostName github.com
IdentityFile ~/.ssh/second_id_rsa
我测试了我的设置并运行了以下命令:
ssh -T git@github-second-account
GitHub 表示一切正常,身份验证成功。太好了。(通过 -vvv
验证了使用的正确 SSH 密钥。)但现在我要继续执行以下操作:
git clone git@gitub-second-account:myorg/somerepo.git
并且会收到一个错误:
ssh: Could not resolve hostname gitub-second-account: 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密钥是否具有权限(通过在github.com上进行检查并更改我的.ssh/config
以使用该SSH密钥),并且仓库可以顺利检出。我有一种烦人的感觉,即git无法解析主机名别名。
有什么想法吗?运行git clone --progress --verbose ...
不幸的是没有提供更多信息。
github-second-account:myorg
吗? - evolutionxboxssh -T
报告说我对 bitbucket 仓库有读取权限。我正在直接使用我的仓库克隆 URL,所以我知道它是正确的。我正在按照 Atlassian 的指南操作:https://developer.atlassian.com/blog/2016/04/different-ssh-keys-multiple-bitbucket-accounts/ - BugHunterUK