如何使用SSH直接通过jumphost对目标进行 SSH,而不需要额外的SSH命令

分享于 

2分钟阅读

互联网

  繁體 雙語

问题:

如果我这样做:


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:

由于你的配置明确表示忽略指定的主机名并登录到跳转主机,你最终将登录到跳转主机。


 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 作为别名,然后在两种情况下将主机名设置为 jumphost.example.com。

我建议使用主机命令后的别名不完全限定域名,然后创建一个主机条目。



COM  COMM  添加  DIR  Comma  SSH