通过代理服务器自动SSH连接

时间:2015-04-02 22:17:06

标签: linux bash ssh

我正在尝试编写一个非常简单的bash脚本,所以我可以首先ssh到代理服务器,然后从代理服务器,ssh到目标服务器。这就是网络设置为访问的方式。我有:

#! /bin/bash
ssh  proxyservername
ssh  destservername

哪个不起作用。当我连接到proxyserver时,第二行ssh没有执行,我仍然需要手动输入命令。是否有一些命令我可以添加到脚本中,所以我可以自动连接到目标服务器? (我提示输入密码即可。)

2 个答案:

答案 0 :(得分:1)

我认为在类似情况下最常见的解决方案是使用-R的{​​{1}}标记(检查ssh)。您可能还想了解man ssh-f

我使用的模式是这样的:

-o ExitOnForwardFailure=yes

(其中ssh -f -o ExitOnForwardFailure=yes -R localhost:2222:$TARGETNAME:22 $PROXYNAME sleep 1 && ssh -p 2222 localhost 基本上是您可以在本地计算机上使用的任何端口。)

2222标记告诉-R连接到ssh,从那里设置隧道到$PROXYNAME的端口22,并将其另一端连接到本地计算机上的端口$TARGETNAME。其他选项告诉2222转到后台并在不再使用时关闭此连接。然后,您只需启动另一个连接到ssh上的端口ssh的{​​{1}}实例。

答案 1 :(得分:0)

我认为您需要ssh proxyservername 'ssh destservername'的某些内容,假设proxyservername已安装ssh,可以访问destservername。