当我通过 ssh 远程登录到服务器时,如何引用我的机器(客户端)?

当我通过 ssh 远程登录到服务器时,如何引用我的机器(客户端)?

这种情况出现的频率令人惊讶:
我通过 ssh 连接到服务器或其他计算机。我想将一些文件 scp 或 rsync 回我的客户端计算机。问题是我位于防火墙后面,并且我的计算机上没有映射到端口 22 的端口。
如果我能以某种方式在 scp 或 rsync 命令中为连接的计算机设置别名,那就太好了,例如:

scp fileToBeTransferred LOCALMACHINE:~/temp/

我当前的流程是从本地计算机发出命令(而不是在 ssh 会话中)。如果能够从服务器发出 scp 命令,速度会快得多,因为我已经在正确的目录中,我可以使用文件完成功能,而且我的凭据已经过验证。

如果有什么区别的话,我的客户端机器几乎总是运行 Mountain Lion 的 Mac。

答案1

您可以通过到本地 ssh 端口的反向隧道实现此目的

连接到远程计算机时,使用-R选项:

ssh -R 10000:127.0.0.1:22 remoteuser@remotemachine

现在,远程端口 10000 已映射到您的本地端口 22,您可以从远程会话传输文件:

scp -P 10000 yourfile [email protected]:/path/to/target/

相关内容