Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSH identiesonly=yes转发我的所有密钥_Ssh_Public Key Encryption_Ssh Agent_Bitbucket - Fatal编程技术网

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

SSH identiesonly=yes转发我的所有密钥,ssh,public-key-encryption,ssh-agent,bitbucket,Ssh,Public Key Encryption,Ssh Agent,Bitbucket,我一辈子都搞不明白为什么我的SSH配置转发了错误的密钥。我有两把钥匙,我们称它们为home\u rsa和work\u 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 I

我一辈子都搞不明白为什么我的SSH配置转发了错误的密钥。我有两把钥匙,我们称它们为
home\u rsa
work\u 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报告我正在使用我的
主页
用户,尽管我已明确登录到我的
工作
服务器,并且应该转发我的
工作
密钥。如果我以相反的顺序添加SSH标识并运行上面相同的代码,Bitbucket会报告我正在使用我的
work
user。从我的
work
服务器运行
ssh add-l
,我看到两个ssh密钥都被转发了,但是
的任务不是只有yes

我真的很困惑这里到底发生了什么

我真的很困惑这里到底发生了什么

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


您想用它做什么?

您需要首先在他们的网站上使用等效的bitbucket帐户更新ssh密钥(使用
work\u rsa
的用户,使用
user\u rsa
的用户)。也许这会有帮助

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

ssh bitbucket-work

否。
标识仅
控制用于身份验证的密钥,但不影响代理中可用的密钥列表。哦。那么,有没有一种方法可以控制我的代理在每台服务器上提供哪些密钥?不是真的,没有。我的意思是,你可以用多个本地代理破解一些东西,但这可能不太好。我在另一篇评论中说:“Bitbucket不允许在Bitbucket帐户之间使用相同的SSH密钥。我有一个工作账户和一个个人账户。当我尝试推送/获取/合并/等时,我希望远程服务器使用正确的SSH密钥实现方法?Bitbucket不允许在Bitbucket帐户之间使用相同的SSH密钥。我有一个工作帐户和一个个人帐户。当我尝试push/fetch/merge/etc时,我希望远程服务器使用正确的SSH密钥。是的,我理解你的答案。但是你问我如何使用它。我正在尝试push/fetch/merge/因此,您需要:1)在远程服务器上创建这样的配置(可能无法工作,因为密钥不是本地的)。2)以其他方式区分密钥,例如通过确认(
-c
切换到
ssh add
)。3)使用不同的密钥从该服务器连接。