SSH到嵌套服务器

时间:2019-02-13 11:32:11

标签: shell ssh

我的本​​地计算机上有一个Bash脚本test.sh

我需要将脚本运行到我的AWS实例,但是要登录到AWS服务器(实例),我需要登录到相应的堡垒服务器,然后登录到实例并运行脚本。

Local >> bastion server >> AWS instances(run test.sh)

在AWS实例上执行的脚本的输出应打印在本地计算机的终端上。

我有3个堡垒服务器和3个AWS实例,我需要在其中运行相同的脚本并获取输出。

bastion1 >> AWS inst_1

bastion2 >> AWS inst_2

bastion3 >> AWS inst_3

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以使用-J选项来指定堡垒:

ssh -J bastion1 aws_inst1 "test.sh"
ssh -J bastion2 aws_inst2 "test.sh"
ssh -J bastion3 aws_inst3 "test.sh"

但是,由于从堡垒到AWS实例的映射是固定的,因此我将它们添加到您的ssh配置文件中。 (~/.ssh/config

Host aws1
    Hostname  aws_inst1
    ProxyJump bastion1

Host aws2
    Hostname  aws_inst2
    ProxyJump bastion2

Host aws3
    Hostname  aws_inst3
    ProxyJump bastion3

有了这个,您可以简单地编写

ssh aws1 test.sh
ssh aws2 test.sh
ssh aws3 test.sh