通过 ssh 多次跳转后从服务器传输文件,net cat 不可用

Posted

技术标签:

【中文标题】通过 ssh 多次跳转后从服务器传输文件,net cat 不可用【英文标题】:Transfer Files from server after multiple hops over ssh , net cat not available 【发布时间】:2014-03-25 18:14:16 【问题描述】:

我希望通过 SSH 从一堆服务器中自动检索文件。 问题是服务器位于不同的网络上,我需要通过 2 个中间服务器,这些服务器提供有限的权限、有限的 ssh 并且没有 netcat 或连接。

环境 -

localhost --> GW1 --> GW2 --> (server1, server2,server3)

GW1、GW2 甚至一些服务器都限制了 shell ..

目前使用的方法是,使用 putty 创建到 GW1 的动态隧道,GW1 存储了一个配置来连接到 GW2 ..ssh 到 GW 2。 配置filezilla使用隧道,连接到服务器X,通过sftp下载文件

有什么办法可以自动化吗?即使只是文件传输部分使用隧道自动连接和传输也会有所帮助。 我隐约记得使用隧道通过 scp 成功检索文件,但不记得我是如何管理它的。

【问题讨论】:

【参考方案1】:

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 应该做什么。

如果有人知道并想在此处包含它,我会很乐意更新我的答案。

【讨论】:

以上是关于通过 ssh 多次跳转后从服务器传输文件,net cat 不可用的主要内容,如果未能解决你的问题,请参考以下文章

快应用快应用用户协议隐私政策内容中可以多次跳转,点击返回未能返回上一级页面,该如何处理?

Nginx负载第一次解析地址生效页面跳转后第二次解析无法完成

js 跳转新页面

解决使用this.$router.push()方法页面跳转后不加载列表刷新的方法问题

vue 路由跳转后 怎样去掉指定的组件

react native 路由跳转后页面不刷新问题