配置 .ssh/config 以将主机别名转发到远程主机?

配置 .ssh/config 以将主机别名转发到远程主机?

我们用来jump hosts访问我们的硬件。这些主机的寿命很短(不到一天),并且每次生成时都不同。我希望能够配置我的本地.ssh/config文件以将其转发aliases到我的真实硬件,并能够将它们转发aliases到我的jump host.

我尝试过以下命令但失败了:

ssh <jumphost> -t bash -ci ssh <hostalias>

有什么我可以尝试的选择吗?

jumphost不介意手写,因为它经常变化。我只是想要一种方法来自动执行跳转到该主机的过程,然后从那里跳转到真正的硬件。

答案1

在你的.ssh/config

Host farsidehost
    HostName acutalremotehostname.example.com
    ProxyJump bastionhost.example.com

然后您可以执行ssh farsidehost.

如果正如您的更新所示,跳转主机的名称经常更改,您可以在命令行上指定它:

$ ssh -J jumphostoftheday.example.com actualremotehostname.example.com

如果有某种方法可以按程序查找跳转主机的名称,则可以自动化:

$ ssh -J $( determine_jump_host ) actualremotehostname.example.com

答案2

使用真实硬件的本地变量名称,并让本地 ssh 命令行扩展这些变量。

proddb=dc1r12u10.internal.dns
jumper=vm20180913.internal.dns
ssh $jumper -t bash -ci ssh $proddb

相关内容