According to Wikipedia's comparison of SSH clients, only four have ZMODEM support (AbsoluteTelnet, SecureCRT, Tera Term and ZOC), and of those only SecureCRT runs on Linux. However, SecureCRT is not open source.

Quite odd, BTW, that the most featured SSH clients for accessing *nix machines, only run on Windows.

  • 30 years old protocol. Do you really need that stuff?
    – Jakuje
    Commented Sep 7, 2016 at 8:10
  • Some Windows clients seem to incorporate features which are not necessary on Linux because they are already included. And this table is strange anyway, most of those features seem to be terminal emulator features and not ssh client features. This fits, because on Windows "terminal emulator" and "ssh client" is often the same application, while on Linux it's definitely not.
    – Nobody
    Commented Sep 7, 2016 at 9:23
  • @Jakuje: sz ./file is surprisingly convenient, but I'd settle for some other fast method of uploading/downloading a file in the current directory. Commented Sep 7, 2016 at 17:40

2 Answers 2


What about zssh? (http://zssh.sourceforge.net/) Seems to be exactly what you want.

  • 1
    Last release: 2003 :( Commented Aug 10, 2017 at 5:13
  • Nonetheless, it is still packaged by major distributions and works perfectly fine. Working, feature complete software doesn't necessarily need continuous updates. Commented Oct 26, 2018 at 17:03

ckermit supports ssh these days (along with a lot of other things) and can handle file transfers over a connection using a variety of methods.

You don't really need support built into the ssh client itself. Having it built into any layer between the keyboard and the remote host will do.

KDE's Konsole had explicit ZMODEM support last time I used it.

screen (the terminal multiplexer) has support for executing a command and piping its inputs/outputs into the currently visible pty via the exec command (see the screen man page for details.) This works with X/Y/ZMODEM programs, but you have to start the screen session before you start SSH, and you may have to start ssh as ssh -e none user@host in order to not have the escape character mess things up.

You might additionally want to look into ssh connection sharing. It's relatively easy to set up and allows use of multiple ssh, sftp, and scp sessions over a single connection so you don't have to reauthenticate. Doesn't help if you've daisy-chained through several hosts and suddenly need to transfer a file though.

In my experience, it's much more common to have base64 installed on random other machines than it is lrzsz these days. For small files it works quite well to base64 encode them and then "transfer" them via copy/paste. It technically works for large files too, but the transfer speed is rather low. It does have the advantage of not triggering escape characters for most connections though.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.