自动化远程 SSH 跳转服务器提供的菜单

自动化远程 SSH 跳转服务器提供的菜单

我需要通过跳转服务器连接到远程主机,但该服务器向我提供了一个菜单,如下所示

Please make a selection (1 2 ... q)
1. SSH Remote Server
2. Open a local session
q. Exit

从菜单中,我需要选择(1),然后使用远程主机的地址回答下一个提示:

Enter the hostname or IP of the server you want to connect to :

是否可以使用该程序自动执行此连接ssh_config,或者我是否需要编写expect脚本或类似脚本?

还有更好的选择吗?

答案1

既然您要求“任何更好的选择”,那么可能可以绕过“跳转服务器”上的菜单。

一个选项是,这个菜单是由你的登录 shell 实现的,因为程序你的登录 shell 或者因为它被调用经过您的登录 shell(例如在您的 中~/.bash_profile)。在这种情况下,您应该能够通过明确运行交互式非登录 shell 作为远程命令来绕过它:ssh -t jump_server bash -i

更好的是,“跳转服务器”上运行的 ssh 服务器可能允许您进行一些端口转发。然后,该命令ssh -W remote_host:22 jump_server通过与您的“跳转服务器”的 SSH 连接,在 TCP 端口 22 上与“远程主机”建立连接。您可以使用它通过从您的计算机到“跳转主机”的第二个 SSH 连接,建立从您自己的计算机到“远程主机”的 SSH 连接ssh -o ProxyCommand='ssh -W %h:%p jump_server' remote_host

如果可行,您可以使用以下两行来自动化操作.ssh/config

Host remote_host
    ProxyCommand ssh -W %h:%p jump_server

然后,运行ssh remote_host就会自动通过“跳转服务器”将你连接到“远程主机”。

相关内容