如何在没有其他ssh命令的情况下使用SSH配置直接通过Jumphost通过SSH定向到目标


14

如果我做:

ssh -J jumphost.example.com target.example.com

我最终立即登录到“目标”。

如果我使用此ssh配置文件,请使用较新的ssh-7.3跳转配置:

Host jump 10.1.*, targets*, *.example.com
  HostName jumphost.example.com
  IdentitiesOnly yes
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

我最终登录到“ jumphost”而不是“ target”

他们的钥匙串东西是针对mac的,我已经对其进行了测试,没有区别,但我认为以防万一。


1
-JProxyJump,不是HostName
鲍里斯蜘蛛

Answers:


21

您最终登录到跳转主机,因为您的配置明确要求忽略指定的主机名并登录到跳转主机。

  HostName jumphost.example.com

HostName 覆盖在命令行上指定的主机名。

如果您尝试自动使用跳转主机而不必在ssh命令行上指定它,则正确的配置文件选项为ProxyJump。例如:

Host everything, behind, jumphost, *.example.com
  ProxyJump jumphost.example.com

现在您可以运行ssh target.example.com,您将通过Jumphost。


2

问题在于,主机定义会同时捕获jumphost.example.com和target.example.com作为别名,然后在两种情况下都将HostName设置为jumphost.example.com。

我建议在“主机”命令之后使别名不完全限定域名,然后为每个别名创建一个主机条目

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.