我想知道在已建立的 ssh 会话中,是否有任何方法可以将文件复制到源计算机并从源计算机复制文件,而无需使用 sftp 或 scp 创建单独的连接,从而需要更多身份验证。我正在寻找一些简短且快速输入的内容,或者一些冗长的内容,我可以为其编写一个快速输入的别名或函数。
以下是一个(对我而言)理想情况的示例:
$ ssh me@otherhost
password:
$ cpback somefile.txt ~/Documents
copying 'otherhost:~/somefile.txt' to 'localhost:~/Documents/somefile.txt'
$ cpfore otherfile.py ~/Downloads
copying 'localhost:~/otherfile.py' to 'otherhost:~/Downloads/otherfile.py'
在这个例子中,cpback
将从远程主机复制,并且cpfore
将从本地主机复制文件。
答案1
调制解调器
最好使用 SCP,在使用 SSH 终端会话的同时运行 scp 不会有问题。如果您使用 ssh 身份验证代理(例如 Pageant for PuTTY 和 pscp),则无需重新进行身份验证。
另一种方法是 zmodem 传输。主机上需要有 sz 和/或 rz,客户端也需要有同等功能。
一些 ssh 客户端本身支持 zmodem(例如 secureCRT)。无处不在的PuTTY 没有但是 PuTTY 的一些分支可以做到:猫咪、ExtraPuTTY 和 LePuTTY 为例。
因此,如果你使用 Kitty 作为 SSH 客户端登录,你可以
- 通过调用SZ命令将文件传输给kitty。
- 通过调用 RZ 命令从 kitty 传输文件,然后选择使用 Kitty 菜单使用 zmodem 发送文件。
您可能还可以使用 xxd 和会话日志将某些内容结合在一起。