【发布时间】:2016-07-21 16:09:25
【问题描述】:
我一生都无法弄清楚为什么我的 SSH 配置转发了错误的密钥。我有两把钥匙,我们称它们为home_rsa 和work_rsa。我做了以下事情:
eval `ssh-agent`
ssh-add -K ~/.ssh/home_rsa
ssh-add -K ~/.ssh/work_rsa
这是我的~/.ssh/config 文件:
Host home
ForwardAgent yes
HostName home.com
IdentityFile ~/.ssh/home_rsa
IdentitiesOnly yes
User home
Host work
ForwardAgent yes
HostName work.com
IdentitiesOnly yes
IdentityFile ~/.ssh/work_rsa
User work
Host bitbucket
IdentityFile ~/.ssh/home_rsa
Host bitbucket-work
IdentityFile ~/.ssh/work_rsa
Host bitbucket*
HostName bitbucket.com
User git
当我运行以下...
ssh work
ssh git@bitbucket.org
…Bitbucket 报告说我正在使用我的home 用户,尽管我已经清楚地登录到我的work 服务器并且应该转发我的work 密钥。如果我以相反的顺序添加我的 SSH 身份并运行上面相同的代码,Bitbucket 报告我正在使用我的 work 用户。从我的work 服务器运行ssh-add -l,我看到两个SSH 密钥都被转发,但这不是IdentitiesOnly yes 的工作吗?
真的很困惑这里发生了什么。
【问题讨论】:
-
没有。
IdentitiesOnly控制用于身份验证的密钥,但不影响代理中可用的密钥列表。 -
哦。那么有没有办法在每个服务器的基础上控制在我的代理中提供哪些密钥?
-
不是,不是。我的意思是,你可以用多个本地代理破解一些东西,但它可能不会很漂亮。
-
我在另一条评论中说:“Bitbucket 不允许在 Bitbucket 帐户之间使用相同的 SSH 密钥。我有一个工作帐户和一个个人帐户。当我尝试推送/获取/合并/等时,我希望远程服务器使用正确的 SSH 密钥。”有什么[理智的]方法可以做到这一点吗?
标签: ssh public-key-encryption ssh-agent