sha*_*nuo 3 ssh ssh-tunnel ssh-keys
以下命令按预期工作。
ssh soak@10.10.10.11 "ssh soak@10.199.199.191 'cat test.txt'" > /home/shantanu/test.txt
Run Code Online (Sandbox Code Playgroud)
我需要做的是复制整个目录而不是单个文件。
可以将 rync 与 SSH 隧道一起使用吗?
您可以用于scp
复制单个或多个文件,也可以rsync
与 ssh 传输一起使用:
scp -r localdirectoryname username@hostname:/remotepath
Run Code Online (Sandbox Code Playgroud)
和
rsync -av localdirectory username@hostname:/remotepath
Run Code Online (Sandbox Code Playgroud)
这两个程序也以相反的方式工作,远程部分作为起点,本地部分作为目的地。
见man scp
和man rsync
。
编辑
如果你确实需要一个中间服务器,你可以使用 ssh 端口转发:
在一个 shell 中,使用此命令建立端口转发:
ssh -NL 10022:10.199.199.91:22 soak@10.10.10.11
Run Code Online (Sandbox Code Playgroud)
这10.199.199.91
会将您本地计算机上的端口 10022 与端口 22 on 连接起来,但不会打开外壳,而是会阻塞直到您终止它。
之后,在另一个 shell/xterm 上,您可以使用
scp -r -P 10022 localpath soak@localhost:/remotepath
Run Code Online (Sandbox Code Playgroud)
但必须注意,soak@localhost
实际上指向soak@10.199.199.191
输入凭据时。
编辑 2,现在具有 rsync
正如您特别询问 rsync,这里是如何使用 rsync 而不是 scp。它需要与scp
变体启用相同的端口转发:
rsync -av --rsh="ssh -p 10022" localpath soak@localhost:/remotepath
Run Code Online (Sandbox Code Playgroud)
并再次记住您实际上是连接到soak@10.199.199.191
.