[英]Transfer Files from server after multiple hops over ssh , net cat not available
我正在寻找通过SSH自动从一堆服务器中检索文件的方法。 问题是服务器位于单独的网络上,我需要经过2个中间服务器,并且这些服务器提供有限的特权,有限的ssh且没有netcat或connect。
环保-
本地主机-> GW1-> GW2->(服务器1,服务器2,服务器3)
GW1,GW2甚至某些服务器都具有受限制的外壳。
当前使用的方法是,使用腻子创建到GW1的动态隧道,GW1存储有配置以连接到GW2 ..ssh到GW2。配置filezilla以使用隧道,连接到服务器X,通过sftp下载文件
有什么办法可以自动化吗? 使用隧道连接和传输,即使只是文件传输部分也可以自动执行。 我隐约记得曾经成功使用隧道通过scp检索文件,但不记得我是如何管理文件的。
此链接转到有关透明多跳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
,并且效果很好。 所引用的文章提供了更多详细信息,但是proxy命令指令为它提供了一种预配置的方式来访问对最终用户透明的主机。
需要注意的是,本文指定使用nc -q0
,但是该选项在ubuntu VM或mac上的普通nc
上不可用。 没有它似乎可以正常工作,几分钟的搜索使我几乎无法弄清-q0
应该做什么。
如果有人知道并且想在这里包括它,我会很乐意更新我的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.