Fun with Kermit and ZMODEM over SSH
Frederic Cambus April 25, 2023 [Networking]In my "Capturing text screens on modern operating systems" article published back in 2013, I mentioned finding a very promising program called Qodem. It has since reached maturity and version 1.0 was released in 2017. I have been enjoying it on a regular basis to reminisce about the glorious days of using Terminate and Minicom in the nineties, and even packaged it in both OpenBSD and NetBSD.
Qodem has built in support for SSH, and also lets you spawn a local shell and SSH from there, which allows authentication using SSH keys.
For the purpose of this article, I used two Fedora machines and installed the ckermit and lrzsz packages to handle the Kermit and ZMODEM protocols respectively. There is a qodem package as well, but it only bundles the X11 binary. I prefer to use the curses version, so I built it from source.
And from there, let the fun begin:
C-Kermit 9.0.302 OPEN SOURCE:, 20 Aug 2011, for Linux (64-bit)
Copyright (C) 1985, 2011,
Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/home/fcambus/) C-Kermit>send NetBSD-9.3-amd64.iso
Return to your local Kermit and give a RECEIVE command.
KERMIT READY TO SEND...
9 S~/ @- SENT: [/home/fcambus/NetBSD-9.3-amd64.iso] To: [netbsd-9_3-amd64.iso] (OK)
(/home/fcambus/) C-Kermit>
Here is our Kermit transfer in action:
For transferring files using ZMODEM, we use sz from the lrzsz package:
sz NetBSD-9.3-amd64.iso
And here is our ZMODEM transfer in action:
There is something quite special about seeing ZMODEM transfers reach speeds close to 600 MBit/s. It's hard to explain.
For the record, I used the following script to take screenshots in burst mode and then create an animated GIF:
while true; do
gnome-screenshot -w;
done
Lastly, if you enjoy watching those glorious progress bars, you might also enjoy my "File transfers via the parallel port on DOS using LapLink" post from last year, which served as the inspiration for this one.