sftp v0.1

http://www.xbill.org/sftp

Author:

Brian Wellington (bwelling@xbill.org)
October 12, 1999

sftp is an ftp replacement that runs over an ssh tunnel.  Two programs are
included - sftp and sftpserv.  When sftp is run and a host is connected to
(either by running 'sftp remotehost' or 'open remotehost' from the sftp
prompt), an ssh connection is initiated to the remote host, and sftpserv is
run.  So, sftpserv must be in your path on the remote host.  Note that since
sftpserv is run from ssh, no root privileges are necessary.

From within sftp, all of the normal ftp commands are present: open, close, get,
put, cd, ls, lcd, delete, rm, pwd, quit.  There's also exec, which runs a
program on the remote end.  This program must not accept input ('exec ls' is
ok, but 'exec vi' is not).  To run local commands, precede them with a '!'.

When building sftp, a link is made to rsftp, which uses rsh instead of ssh.
sftp has been tested with rsh (with and without .rhosts) and ssh1 (with
ssh-agent, password, and RSA authentication).  I haven't tested ssh2, but it
should work.  The login process is a bit of a hack, so if logging in doesn't
work, it's a bug and should be fixed.

sftp uses a fairly simple multiplexed protocol over an SSH channel.  The server
is a state machine, and is far more capable than the client.  As an example,
the server theoretically could handle multiple concurrent file transfers, but
the client will only send one.

This was mostly written during the summer of 1998, and resurrected in October,
1999.  I don't know how much time I want to spend adding new features, but
bugs will be fixed.

Note: If building on Solaris (or other similar systems), set LIBS = -lsocket
in the Makefile...
