1

场景是这样的:

SERVER_A="servera.com"
SERVER_A_UNAME="usera"
SERVER_B="serverb.com"
SERVER_B_UNAME="userb"

我想编写一个shell脚本,它将首先连接到服务器A,然后只有它会连接到服务器B。比如:

#!/bin/sh
ssh $SERVER_A_UNAME@$SERVER_A ...and then
ssh $SERVER_B_UNAME@$SERVER_B

但我做不到。它只连接到服务器 A。我怎样才能实现它?

4

2 回答 2

0

你应该看看 ssh ProxyCommands,它可以让你自动进行间接连接。基本上你把以下内容放在你里面.ssh/config

Host gateway1
  # nichts

Host gateway2
  ProxyCommand ssh -q gateway1 nc -q0 gateway2 22

Host targethost
  ProxyCommand ssh -q gateway2 nc -q0 targethost 22

然后ssh targethost即使无法直接访问目标主机,您也可以成功运行。你可以阅读更多关于这个例如这里http://sshmenu.sourceforge.net/articles/transparent-mulihop.html

于 2013-09-03T17:32:38.067 回答
0

您可能会在上一个问题上找到一些帮助:

如何使用 bash/expect 检查 SSH 登录是否有效

根据您的情况,您还可以执行远程 ssh 命令并等待积极反馈。

看:

如何使用 SSH 在远程机器上运行 shell 脚本?

于 2013-09-03T16:09:42.697 回答