I have a linux based router that doesn't have the SFTP server installed. More specifically, when I sftp user@ipaddress I get a sh: /user/libexec/sftp-server: not found error. My interest isn't trying to resolve this error by installing a new package ("distro" is specific to the router, and I'm not interested in trying to modify it).

What I am interested in is finding a command line utility that works like sftp but uses scp as the transfer mechanism.


You can use fish (files transferred over shell protocol). There are various client implementations, but none require any server support beyond regular SSH.

  • This is exactly what I was looking for. Thank you very much! – Jordan S. Jones Aug 11 '10 at 22:10
  • hmm any idea how I can install this in ubuntu? when I search for the package I find "A friendly interactive shell. Fish is a shell geared towards interactive use. Its features are focused on user friendliness and discoverability. The language syntax is simple but incompatible with other shell languages.". Is that the one you are talking about? – phunehehe Aug 15 '10 at 16:20
  • 3
    @Phunehehe - No, this is not the one he is talking about. What he is referring to is a Protocol. Some applications implement it, some don't. For my scenario, I happened to use the lftp program. lftp fish://username@host.name. – Jordan S. Jones Aug 16 '10 at 19:15

I use Veam Fast SCP for this. It's very handy when dealing with ESXi, since that only has scp enabled, but it will also deal with any scp-enabled machine.


Perhaps I'm confused, but what do you mean by "sftp like interface"? Just get/put files using scp from the command line.

To put file foo, from the command line on your linux host assuming 'username' exists as a user on the router:

$scp foo username@router:~

This will copy file foo to the home directory of username.

To get a file from the router, assuming the file is in the home directory of user 'username':

$scp username@router:~/foo .

This will copy file foo from the router to whatever directory you're in when you execute the command.

I hope I understood your question correctly.

Good luck.

  • 1
    What I meant to say, is the sftp interface where your "cd", "ls", etc commands are run on the remote server allowing you to get/put files without having to explicitly type each path everytime. – Jordan S. Jones Aug 11 '10 at 19:18

A client program like filezilla can do this as well... the connection type you specify is 'sftp' which is misleading, since it actually doesn't require an sftp server, just ssh access to a machine.

  • Yes, my question wasn't as specific as it should have been. That is a realization that happened very quickly when I started to use StackOverflow and like sites :( However, for my particular situation, while in a shell, and I type sftp user@my.router.domain I get a sh: /user/libexec/sftp-server: not found error. Filezilla is fantastic suggestion, however I was looking for a command line "interface". I will update the question accordingly. – Jordan S. Jones Aug 13 '10 at 18:56
  • No worries. It's cool to learn about fish... hadn't seen that before. – gabe. Aug 13 '10 at 19:39

You can use Midnight Commander, a command-line utility. It knows SCP, FTP, it's free, and it's probably in the package manager of your distro.

On Debian/Ubuntu, install it with:

apt-get install mc -y

Run it with:


Hit F10 Enter to exit

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.