当我在Windows中使用secureCRT时,我经常使用sz
和rz
在我的linux服务器和客户端机器之间传输文件。但我不能在 MacOS X 的 iterm2 中使用这种方式。lrzsz
软件包已安装在我的 Linux 服务器(ubuntu 13.04)中
但是,
benjamin@my-ubuntu-13-04:~$ rz
�z 等待接收。**B0100000023be50
终端客户端挂起。有什么问题?
答案1
在该rz
命令之后,连接实际上并未挂起 - 该rz
命令已将 ZMODEM 协议启动消息发送给您iterm2
,并正在等待它给出有效的 ZMODEM 响应。不幸的是,iterm2
似乎不支持ZMODEM协议,因此rz
远程端的命令将等待直到超时。
和rz
命令sz
在其标准输入/输出流中使用 ZMODEM 协议。这在远程端很有用,但在本地端,您需要一个终端仿真器程序,它可以本地支持 ZMODEM 或将传入数据传输到另一个程序,并将该程序的输出返回到远程服务器;这将允许您在 Mac 上本地使用 的等效项sz
来提供 ZMODEM 支持。rz
原则上,ZMODEM 协议可用于任何终端类型的连接。但 ZMODEM 协议几乎完全过时了,因为通过 SSH 连接,您可以使用更好的东西:MacOS 命令行包含 OpenSSHscp
命令,可用于通过 SSH 协议传输文件。
您都可以将文件“推送”到远程服务器中:
scp local-filename username@remote-hostname:remote-directory-or-filename
...或者如果您知道远程文件名,则从远程服务器“拉取”文件:
scp username@remote-hostname:remote-directory/remote-file local-directory-or-filename
如果本地和远程用户名相同,则可以省略该username@
部分。远程目录名称可以是绝对名称(以 开头/
),也可以是相对于远程主机上的主目录的相对名称。如果添加该-r
选项,则可以复制整个目录。
与 ZMODEM 不同,您不需要与远程主机的活动终端连接来传输文件:scp
将建立自己的 SSH 连接来进行文件传输。如果您还使用 SSH 密钥身份验证来消除手动输入密码的需要,那么这将成为自动文件传输的好方法。
答案2
您问题的答案是使用了解 SZ 和 RZ 协议的客户端。
SecureCRT 是一款在 Mac 上运行良好的客户端。我每天都使用它 - 它比内置的 OSX shell 好得多(是的,它是本地 shell)。我从远程 Mac(通过 ssh 到正常 shell)和 Linux 发送和接收没有任何问题。可能其他 ssh 模拟器也做 rz/sz,但我对我的很满意,所以我没有寻找其他人,这篇文章的其他回复也没有给你任何答案(scp 不是 sz) - 所以至少我的答案是真正的实际答案,并且您已经了解该软件。