我必须以这种方式访问我的服务器: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?
我必须以这种方式访问我的服务器: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?
另一种选择可能是使用代理命令:
scp -o ProxyCommand='ssh yyy@remote1 netcat %h %p 2> /dev/null' zzz@remote2:fromfile tofile
如果remote1
已netcat
安装。其他可行的选项可能是nc
or socat
(后者有不同的语法)。
尝试这个,
ssh -L localhost:8022:remote2:22 remote1
现在,您可以使用localhost
port来8022
联系via 。每当您需要转移时,此会话会话应该处于活动状态。利用22
remote2
remote1
scp -P 8022 /path/locale/file 127.0.0.1:/path/on/remote2
这通常称为SSH Tunneling
. 您可以搜索并了解很多。