当通过ssh连接到远程主机时,我经常想将该系统上的文件带到本地系统进行查看或处理.有没有办法复制文件而没有(a)打开一个新终端/暂停ssh会话(b)再次验证本地或远程主机工作(c)即使一个或两个主机在后面NAT路由器?
目标是利用尽可能多的当前状态:两台机器之间存在连接,我在两者上都进行了身份验证,我在文件的工作目录中 - 所以我不必打开另一个终端并复制并粘贴远程主机和路径,这就是我现在所做的.最好的解决方案也不需要在会话开始之前进行任何设置,但如果设置是一次性的或能够自动化,那么这是完全可以接受的.
zssh(openssh上的ZMODEM包装器)完全符合您的要求.
安装zssh并使用它而不是openssh(我假设你通常使用)
您必须在两个系统上安装lrzsz软件包.
然后,将文件zyxel.png
从远程传输到本地主机:
antti@local:~$ zssh remote Press ^@ (C-Space) to enter file transfer mode, then ? for help ... antti@remote:~$ sz zyxel.png **B00000000000000 ^@ zssh > rz Receiving: zyxel.png Bytes received: 104036/ 104036 BPS:16059729 Transfer complete antti@remote:~$
上传类似,只是你只需要切换rz(1)和sz(1).
Putty用户可以尝试具有类似功能的Le Putty.