如何在“间接”ssh连接中传输文件?

时间:2013-07-18 07:55:16

标签: linux networking ssh scp

我必须以这种方式访问​​我的服务器:localhost - > remote1 - > remote2(我的服务器)

[xxxx@localhost] $ ssh yyyy@remote1
[yyyy@remote1]   $ ssh zzzz@remote2
[zzzz@remote2]   $ echo "now I logined into my server..."

我知道如何使用scp传输文件。但是我对remote1没有读写权限。如何将文件传输到remote2?

2 个答案:

答案 0 :(得分:2)

另一种选择可能是使用代理命令:

scp -o ProxyCommand='ssh yyy@remote1 netcat %h %p 2> /dev/null' zzz@remote2:fromfile tofile

如果remote1已安装netcat。其他可行的选项可以是ncsocat(后者具有不同的语法)。

答案 1 :(得分:1)

试试这个,

ssh -L localhost:8022:remote2:22 remote1

现在,您可以使用localhost端口8022通过22remote2 remote1联系。无论何时需要转移,此会话会话都应处于活动状态。使用

scp -P 8022 /path/locale/file 127.0.0.1:/path/on/remote2

这通常称为SSH Tunneling。您可以搜索并了解它。