如何在没有额外 ssh 命令的情况下使用 SSH Config 通过 jumphost 直接通过 SSH 连接到目标

ZZ9*_*ZZ9 14 linux ssh

如果我做:

ssh -J jumphost.example.com target.example.com
Run Code Online (Sandbox Code Playgroud)

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

如果我使用这个 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
Run Code Online (Sandbox Code Playgroud)

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

他们的钥匙串东西是为 mac 设计的,我在没有它的情况下进行了测试,它没有什么区别,但我想我会留下它以防万一。

Mic*_*ton 21

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

  HostName jumphost.example.com
Run Code Online (Sandbox Code Playgroud)

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

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

Host everything, behind, jumphost, *.example.com
  ProxyJump jumphost.example.com
Run Code Online (Sandbox Code Playgroud)

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