【发布时间】:2014-10-27 21:55:57
【问题描述】:
我一直在尝试使用脚本自动输入 ssh 连接。 This 之前的 SOF 帖子到目前为止对我有帮助。使用一个连接有效(第一个 ssh 语句)。但是,我想在连接后创建另一个 ssh 连接,我认为它可能如下所示:
#! /bin/bash
# My ssh script
sshpass -p "MY_PASSWORD1" ssh -o StrictHostKeyChecking=no *my_hostname_1*
sshpass -p "MY_PASSWORD2" ssh -o StrictHostKeyChecking=no *my_hostname_2*
运行脚本时,我只连接到my_hostname_1,而第二个ssh 命令在我退出第一个ssh 连接之前不会运行。
我尝试过使用这样的if 语句:
if [ "$HOSTNAME" = my_host_name_1 ]; then
sshpass -p "MY_PASSWORD2" ssh -o StrictHostKeyChecking=no *my_hostname_2*
fi
但在我退出第一个连接之前,我无法读取任何命令。
【问题讨论】:
-
我的意思是,它应该如何工作?您不能在同一个窗口中有两个活动的 SSH 会话(尽管例如通过拆分窗格)。你到底想做什么?
-
如果您希望将相同的 cmd(同时)发送到多台计算机,这不是解决方案。 (有一个系统管理员程序可以执行此操作,但我现在找不到名称)。否则,请阅读有关在后台运行 shell cmds 的信息,并在 cmd 行末尾使用
&字符。祝你好运。 -
@TimZimmermann:他可能想将第一台主机用作通往第二台主机的网关。
-
@TimZimmermann my_hostname_2 只能通过 my_hostname_1 访问。如果没有脚本,我将运行第一个
ssh命令连接到 my_hostname_1,然后运行第二个ssh命令连接到 my_hostname_2。我想我会写一个脚本来节省时间。 -
检查 ssh_config 中的 ProxyCommand 指令