是否可以使用.ssh / config中的IdentityFile指令指定转发的密钥?
尝试通过Capistrano / GIT在我们的生产服务器上部署一些代码时,我遇到了这个问题。我的个人GIT密钥和我的工作GIT密钥始终都加载到我的SSH代理中,而恰好是我的个人密钥首先添加到了代理中。我在通过Capistrano进行部署时使用代理转发,因此当主机尝试对git pull操作进行身份验证时,它失败并显示以下错误:
错误:“您的用户”拒绝了“某些仓库”的权限。
因为它尝试使用我的个人git密钥进行身份验证,然后再尝试使用适当的密钥(稍后在ssh代理中提供),并假定我正在访问我没有访问权限的外部存储库。我可能可以让个人用户访问每个工作仓库,但是在本地计算机上,可以通过在.ssh / config中定义自定义域来解决此问题,如下所示:
主机 personal.github.com
主机名 github.com
用户 git
IdentityFile〜 / .ssh / some_key
主机工作 .github.com
主机名 github.com
用户 git
IdentityFile〜 / .ssh / some_other_key
这样,git永远不会感到困惑。是否可以为生产盒上的转发密钥创建.ssh / config规则,以便他们在提取新代码时始终知道要使用哪个密钥?基本上我希望能够做到:
主机 work.github.com
主机名 github.com
用户的git
IdentityFile some_forwarded_key
谢谢!