通过已建立的 ssh 连接传输文件

通过已建立的 ssh 连接传输文件

我想知道在已建立的 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 和会话日志将某些内容结合在一起。

相关内容