zssh [zssh options] [--] [ssh options]
ztelnet [zssh options] [--] [telnet options]
zssh (Zmodem SSH) is a program for interactively transferring files to a remote machine while using the secure shell ( ssh ). It is intended to be a convenient alternative to scp , allowing to transfer files without having to open another session and re-authenticate oneself.
zssh is an interactive wrapper for ssh used to switch the ssh connection between the remote shell and file transfers. This is achieved by using another tty/pty pair between the user and the local ssh process to plug either the user's tty (remote shell mode) or another process (file transfer mode) on the ssh connection.
ztelnet behaves similarly to zssh, except telnet is used instead of ssh. It is equivalent to 'zssh -s "telnet -8 -E"'
Files are transferred through the zmodem protocol, using the rz and sz commands.
zssh behaves as an usual ssh session until the escape sequence is depressed ( default is ^@ which can be produced by pressing C-space, or C-2, or C-` ), which enables file transfer mode. A new prompt is then displayed, and commands can be executed locally to initiate file transfers (among other things). It roughly behaves as a local shell featuring line edition, history and completion (thanks to libreadline), globbing, and escape characters ( " ' and \ ).
The following builtins are handled by zssh itself: ? , cd , disconnect , escape , exit , help , hook , quit , repeat , rz , suspend , sz , version
builtins rz , sz , hook and exit return to shell mode after completion.
--
may be used to separate zssh options from ssh ones
Other arguments are passed verbatim to ssh/telnet/whatever.
the following binaries need to be properly installed for zssh to work :
If file transfer is initiated but never completes
( ie a line like :
Bytes Sent: 38144/4610624 BPS:3424 ETA 22:15
or
Bytes Sent: 0/ 513 BPS:0 ETA 00:00 Retry 0: Got ZCAN
can be seen, but transfer never completes
)
Chances are the pty/tty on one of the systems are not 8-bit clean.
(Linux is 8-bit clean, NetBSD is not).
Using the -e (escape) option of rz should solve this problem.
Transfers can be interrupted with ^C (somewhat experimental =)
If you get stuck in rz/sz (for example you've just ran rz, but you then decided not to transmit anything), hit a dozen ^X (Ctrl-X, not the zssh escape!) to stop it
Use `sz -y <files>' to overwrite files on the other side
You may sometimes have to hit return 2 or 3 times after file transfer completion in order get back to the shell. Some digits are usually displayed; don't worry it won't harm (you or your term) ...
the tty may (sometimes) be somewhat upset after an interrupted transfer ( using ^C ). typing `reset' in this case should help.
no pipe, redirection (and other stuff) support in shell ... but after all there are already wonderful shells around =)
ttssh's author - Robert O'Callahan - for the original idea
The sourceforge team.
Matthieu Lucotte <gounter@users.sourceforge.net>
zssh homepage: http://zssh.sourceforge.net