5

The fish protocol is a sort of ftp over ssh, that is touted as not needing special software on the server side (unlike scp and sftp).

From a cursory glance it seems like it allows fish commands that fall back to basic shell commands if the server doesn't have the fish software installed. But why not just use the shell commands directly?

(The question linked to above explains the differences between the various protocals, but it doesn't explain the mechanism of fish, or why bother with the protocal if you are sending equivalent shell commands anyway.)

  • 2
    scp and ssh don't require "special" software; a secure shell server is all that is needed, and is a core package in nearly all Unix-like distributionns. – DopeGhoti Jul 10 '17 at 17:34
  • (fish also needs ssh. I referenced scp and sftp) I mean special as in a separate command, not as in unique or uncommon. See the linked page (in comments) where this is pointed out. – Reinstate Monica Jul 10 '17 at 17:40
  • @bgvaughan - that is the question I linked to in my own question. This question is specifically about the fish protocal: since it includes basic shell commands running over ssh (and as such is advertised as not needing software on the server), what's the point of the protocal itself? – Reinstate Monica Jul 10 '17 at 18:19
  • 1
    If SFTP isn't available, fish fails over to other commands. It's explained thoroughly in the answers to that other question. – bgvaughan Jul 10 '17 at 19:04
  • @DopeGhoti scp requires scp binary on the server, which is not part of the openssh-server, but part of openssh-clients. – Jakuje Jul 10 '17 at 19:42
  • @bgvaughan if you are providing other (equivalent) commands then why bother with fish or sftp in the first place. If they are not equivalent, then there's nothing unique about fish. You can always check if scp/sftp is available and if not use the other commands. – Reinstate Monica Jul 10 '17 at 21:52
  • 1
    Is there a specific problem you're trying to solve? Because as far as I know, no one does bother with "fish". It's an obscure, probably obsolete, feature specific to Midnight Commander. – bgvaughan Jul 10 '17 at 22:26

1 Answers1

3

Fish means FIles transferred over SHell protocol. It was designed for the midnight commander file manager and is not specifically bound to ssh. It can also run on rsh.

From the README.fish in the midnight commander package.

This protocol was designed for transferring files over a remote shell connection (rsh and compatibles). It can be as well used for transfers over rsh, and there may be other uses.