如果我做:
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,我已经在没有它的情况下进行了测试,它没有任何区别,但我想我会留下它以防万一。
您最终登录到跳转主机,因为您的配置明确表示忽略您指定的主机名并登录到跳转主机。
HostName
覆盖命令行上指定的主机名。如果您尝试自动使用跳转主机而无需在 ssh 命令行上指定它,正确的配置文件选项是
ProxyJump
. 例如:现在您可以运行
ssh target.example.com
,您将通过 jumphost。问题是 Host 定义将 jumphost.example.com 和 target.example.com 都捕获为别名,然后在这两种情况下都将 HostName 设置为 jumphost.example.com 。
我建议在 Host 命令之后创建别名不是完全限定的域名,然后为每个创建一个 Host 条目