Subject: Re: [Summer of code] Proposal : a Sftp server
To: None <tech-userlevel@netbsd.org>
From: Ben Harris <bjh21@netbsd.org>
List: tech-userlevel
Date: 06/15/2005 11:13:07
In article <20050614231541.1bb9a306.jklowden@schemamania.org> you write:
>Every time I use sftp, I miss the features of a typical ftpd. The most
>obvious one is [tab] name-completion, because it doesn't load my shell.
This is a client issue, not a server issue. ftpd no more loads your shell
than httpd does.
>And I miss the conveniences, such as mget, of our ftp client.
psftp (which has a Unix port) has mget. It doesn't have tab-completion,
largely because that would involve either linking against an external
library or writing yet another Readline-alike.
>I don't understand why sshd isn't just a better inetd. IOW, why can't it
>accept a connection, authenticate the user, and hand it off to the next
>layer?
That's precisely what the "Subsystem sftp /usr/libexec/sftp-server" in
sshd_config does. If you want a better sftp server, replace it there.
> Why can't ftp & fptd be taught to speak ssh, instead of replacing
>them with new, feature-poor versions?
Remember that FTP can't be run over a single byte-stream -- it needs a
separate stream for each data transfer. This means that it can't just be
wrapped inside an SSH session channel, so either you need hooks whereby a
subsystem implementation can open extra SSH channels, or to replace the FTP
protocol with something that can run over a single channel. SFTP is an
attempt at doing the latter, and fixing lots of FTP's shortcomings at the
same time. Unfortunately, it's suffering from a bad case of second-system
effect.
--
Ben Harris