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. By default, sftpserv is expected to be in $PATH on the remote host. This can be overriden by passing '--enable-remotepath=' to configure or using the '-P remotepath' option to sftp. To run as a different user, use the '-l remoteuser' option. To connect to an alternate port with ssh, use the '-p remoteport' option. To enable ssh compression, use '-C'. From within sftp, all of the normal ftp commands are present: open, close, get, put, mget, mput, cd, ls, dir, 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. sftp is distributed under the GNU General Public License (GPL), Version 2. Author: Brian Wellington (bwelling@xbill.org)