我们用来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