我希望通过SSH自动从一堆服务器中检索文件。 问题是服务器在不同的网络上,我需要经过2个中间服务器,这些服务器提供有限的权限,有限的ssh,没有netcat或连接。
环境 -
localhost - > GW1 - > GW2 - > (server1,server2,server3)
GW1,GW2甚至一些服务器都有受限制的shell ..
当前使用的方法是,使用putty向GW1创建动态隧道,GW1具有存储的配置以连接到GW2 ...到GW2。 配置filezilla以使用隧道,连接到服务器X,通过sftp下载文件
它可以自动化吗?即使只是文件传输部分使用隧道自动连接和传输也会有所帮助。 我模糊地回忆起成功使用隧道通过scp检索文件,但不记得我是如何管理它的。
答案 0 :(得分:0)
This link goes to an article on transparent multihop ssh.它提供了一个在类似情况下适合我的解决方案。我刚测试了这个从MacOS X通过一个linux盒子到另一个linux盒子,它工作。您的里程可能因其他环境而异。
使用您在上面提供的名称,将其放在$HOME/.ssh/config
。
Host GW2
ProxyCommand ssh -q GW1 nc GW2 22
Host server1
ProxyCommand ssh -q GW2 nc server1 22
我已经使用scp
这种类型的设置,它工作正常。引用的文章提供了更多详细信息,但代理命令指令为其提供了一种预先配置的方式来访问对最终用户透明的主机。
有一点需要注意,本文指定使用nc -q0
,但该选项在我的ubuntu VM或我的mac上的库存nc
上不可用。没有它似乎工作得很好,几分钟的搜索让我无法确定-q0
应该做什么。
如果有人知道并想在此处加入,我会很高兴地更新我的答案。