Tell me more ×
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 used to think SCP is a tool to copy files over SSH, and copying files over SSH is called SFTP, which is itself a synonym to FISH.

But now as I was looking for a Total Commander plugin to do this in Windows, I've noticed that on its page it says "Allows access to remote servers via secure FTP (FTP via SSH). Requires SSH2. This is NOT the same as SCP!".

If it's not the same then what am I misunderstanding?

share|improve this question
4  
This is an extension of a previous question. (@Ivan: it would have been helpful to mention this.) – Gilles Mar 7 '11 at 0:39

3 Answers

up vote 15 down vote accepted

SFTP isn't the FTP protocol over ssh, but an extension to the SSH protocol included in SSH2 (and some SSH1 implementations). SFTP is a file transfer protocol similar to FTP but uses the SSH protocol as the network protocol (and benefits from leaving SSH to handle the authentication and encryption).

SCP is only for transferring files, and can't do other things like list remote directories or removing files, which SFTP does do.

FISH appears to be yet another protocol that can use either SSH or RSH to transfer files.

share|improve this answer

FISH and SFTP are similar, and as observed do both work over SSH, SFTP requires specific support and configuration in the SSH Server to facilitate the transfer, but it a bit more secure and allows for SysAdmins to only allow SFTP (in these situations FISH won't work).

FISH requires a shell (sh/rsh for instance) to copy, and hence requires full SSH access to the machine, I would imagine it would be harder to secure (I cannot comment objectively on this as I've never had to).

Where possible, I'd recommend SFTP, scp, FISH (in that order).

Wikipedia FISH Article

share|improve this answer
According to the linked description, a remarkable feature of FISH is that it doesn't require something special on the remote side (no server program, like scp for scp or sftp-server). And there're cases indeed when the remote side is a "restricted" Unix, where you can't install what you want: for transferring files to Android through SSH (over WiFi), I've written the set of rpush-cat scripts -- perhaps, a FISH client would work. (tramp-fish.el in Emacs could, too: the regular TRAMP client didn't work because stat wasn't there on Android.) – imz -- Ivan Zakharyaschev Dec 18 '12 at 13:01

Put it simple:

SFTP = SSH + SFTP-server on server
SCP  = SSH + `scp` on server side
FISH = SSH + `dd` (and some other basic Unix utilities on the server side only) 
share|improve this answer
But sftp and scp requires special programs on the server side, unlike FISH, which uses only basic Unix utuilities in the remote shell. – imz -- Ivan Zakharyaschev Dec 17 '12 at 18:00
According to the description of FISH,a remarkable feature of FISH is that it doesn't require something special on the remote side (no server program, like scp for scp or sftp-server). And there're cases indeed when the remote side is a "restricted" Unix, where you can't install what you want: for transferring files to Android through SSH (over WiFi), I've written the set of rpush-cat scripts -- perhaps, a FISH client would work. (tramp-fish.el in Emacs could, too: the regular TRAMP client didn't work because stat wasn't there on Android.) – imz -- Ivan Zakharyaschev Dec 18 '12 at 13:02

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.