Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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.

share|improve this question
add comment

5 Answers

up vote 6 down vote accepted

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

share|improve this answer
    
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
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
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
add comment

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.

share|improve this answer
    
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
add comment

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:

mc

Hit F10 Enter to exit

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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