【问题标题】:How to transfer a file in an "indirect" ssh connection?如何在“间接” ssh 连接中传输文件?
【发布时间】:2013-07-18 07:55:16
【问题描述】:
我必须以这种方式访问我的服务器: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?
【问题讨论】:
标签:
linux
networking
ssh
scp
【解决方案1】:
另一种选择是使用代理命令:
scp -o ProxyCommand='ssh yyy@remote1 netcat %h %p 2> /dev/null' zzz@remote2:fromfile tofile
如果remote1 安装了netcat。其他可行的选项可能是nc 或socat(后者有不同的语法)。
【解决方案2】:
试试这个,
ssh -L localhost:8022:remote2:22 remote1
现在,您可以使用localhost 端口8022 通过remote1 联系remote2 的22。每当您需要转移时,此会话会话应该处于活动状态。使用
scp -P 8022 /path/locale/file 127.0.0.1:/path/on/remote2
这通常称为SSH Tunneling。您可以搜索并了解很多。