SSH IdentitiesOnly = yes转发我的所有密钥

时间:2016-04-01 18:24:03

标签: ssh public-key-encryption ssh-agent

我不能为我的生活弄清楚为什么我的SSH配置转发了错误的密钥。我有两个键,我们称之为home_rsawork_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用户。从我的ssh-add -l服务器运行work,我发现两个SSH密钥都被转发,但不是IdentitiesOnly yes的工作?

真的很困惑这里发生了什么。

2 个答案:

答案 0 :(得分:1)

  

真的很困惑这里发生了什么。

ForwardAgent选项将连接转发给您的代理,其中包含所有密钥,并且不会将您的本地~/.ssh/config转发到远程主机。您在work主机上执行的操作由该主机上的配置控制。

你想用它做什么?

答案 1 :(得分:1)

您需要先在其网站上更新您的ssh密钥及其等效的bitbucket帐户(工作用户使用work_rsa,用户使用user_rsa)。那么这可能会有所帮助。

Host                bitbucket-work
HostName            bitbucket.org
IdentitiesOnly      yes
IdentityFile        ~/.ssh/work_rsa
User                work

ssh bitbucket-work