latest release zssh-1.5c.tgz  (Last updated Wed Sep 24 00:44:43 EDT 2003)
download page
ftp servers
sourceforge project summary


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 ( currently ^@ ), 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

cd [dir]  change current directory
disconnect disconnect and exit.
escape [^X] Change escape key to ^X.
Without argument, print current escape key
exit file transfer mode. ^D may also be used for this purpose.
print help and tips
hook prg [args] Hook program 'prg' on the the pty. Its standard input and output will go through the ssh channel.
typing 'sz'/'rz' is in fact equivalent to 'hook sz'/'hook rz'.
A weird imagination is most useful to gain full advantage of this feature.
repeat  repeats  cmd  forever  (^C to interrupt). Useful for example if you use a remote script  invoking "sz"  and  you don't want to be typing "rz" each time...
Remember however that several files can be transferred by a single sz/rz pair so this is not usually necessary to use repeat.
rz Receive files from the remote machine.  runs  rz and  plugs  the  process  on the ssh connection. running sz on the REMOTE machine is required :
  • run `sz <remote_file> ...' from the  remote machine shell
  • press  the  escape  sequence  (^@) to enter file transfer mode
  • run the `rz' builtin
suspend suspend zssh (back to the local machine shell)
sz <file> ... Send  files  to  the remote machine. runs sz and plugs the process on the ssh connection. There is  no  need  to  manually  run rz on the remote side.
version print version information
builtins rz, sz, hook and exit return to shell mode after  completion.


Do not ask user any question
the secure shell (local machine)
-s cmd
--shell cmd
run cmd as remote shell instead of the default "ssh -e none" (zssh) or "telnet -8 -E" (ztelnet)
ex: zssh -s "rsh -x"
zmodem send and receive programs. Should be both on  local and remote machine, and (hopefully) of compatible versions.
-z ^X
--zssh-escape ^X
set escape sequence to ^X

-- may be used to separate zssh options from ssh ones
Other arguments are passed verbatim to ssh/telnet/whatever.


Setting   the  ZSSHESCAPE  environment  variable allows to override the default escape  sequence.
ZSSHESCAPE should contain only two characters of the form `^X', meaning that ^X is to be the  new escape sequence.


the  following  binaries need to be properly installed for zssh to work :
ssh/telnet/... the remote shell to be executed (local machine)
sz rz zmodem send and receive programs. Should be both on  local and remote machine, and (hopefully) of compatible versions.


 (C) 2001 Matthieu Lucotte