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