fbpx
Wikipedia

Files transferred over shell protocol

Files transferred over Shell protocol (FISH) is a network protocol that uses Secure Shell (SSH) or Remote Shell (RSH) to transfer files between computers and manage remote files.

The advantage of FISH is that all it requires on the server-side is an SSH or RSH implementation, Unix shell, and a set of standard Unix utilities (like ls, cat or dd—unlike other methods of remote access to files via a remote shell, scp for example, which requires scp on the server side). Optionally, there can be a special FISH server program (called start_fish_server) on the server, which executes FISH commands instead of Unix shell and thus speeds up operations.

The protocol was designed by Czech Linux Kernel Hacker, Pavel Machek, in 1998 for the Midnight Commander software tool.[1]

Protocol messages

Client sends text requests of the following form:

#FISH_COMMAND arguments... equivalent shell commands, which may be multi-line 

Fish commands are all defined, shell equivalents may vary. Fish commands always have priority: the server is expected to execute a fish command if it understands it. If it does not, however, it can try to execute a shell command. When there is no special server program, Unix shell ignores the fish command as a comment and executes the equivalent shell command(s).

Server replies are multi-line, but always end with

### xyz<optional text> 

line. ### is a prefix to mark this line, xyz is the return code. Return codes are a superset to those used in FTP. The codes 000 and 001 are special, their meaning depends on presence of server output before the end line.

Session initiation

The client initiates SSH or RSH connection with echo FISH:;/bin/sh as the command executed on remote machine. This should make it possible for the server to distinguish FISH connections from normal RSH or SSH.

The first two commands sent to the server are FISH and VER to negotiate FISH protocol, its version and extensions.

#FISH echo; start_fish_server; echo '### 200' 
#VER 0.0.2 <feature1> <feature2> <...> echo '### 000' 

The server may reply to VER command with a lines like

VER 0.0.0 <feature2> <...> ### 200 

which indicates supported version of the FISH protocol and supported extensions.

Implementations

See also

References

  1. ^ File: Fish.c - via Midnight Commander Official Repository

External links

  • README.fish from Midnight Commander

files, transferred, over, shell, protocol, this, article, needs, additional, citations, verification, please, help, improve, this, article, adding, citations, reliable, sources, unsourced, material, challenged, removed, find, sources, news, newspapers, books, . This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources Files transferred over shell protocol news newspapers books scholar JSTOR December 2009 Learn how and when to remove this template message Files transferred over Shell protocol FISH is a network protocol that uses Secure Shell SSH or Remote Shell RSH to transfer files between computers and manage remote files The advantage of FISH is that all it requires on the server side is an SSH or RSH implementation Unix shell and a set of standard Unix utilities like ls cat or dd unlike other methods of remote access to files via a remote shell scp for example which requires scp on the server side Optionally there can be a special FISH server program called start fish server on the server which executes FISH commands instead of Unix shell and thus speeds up operations The protocol was designed by Czech Linux Kernel Hacker Pavel Machek in 1998 for the Midnight Commander software tool 1 Contents 1 Protocol messages 2 Session initiation 3 Implementations 4 See also 5 References 6 External linksProtocol messages EditClient sends text requests of the following form FISH COMMAND arguments equivalent shell commands which may be multi line Fish commands are all defined shell equivalents may vary Fish commands always have priority the server is expected to execute a fish command if it understands it If it does not however it can try to execute a shell command When there is no special server program Unix shell ignores the fish command as a comment and executes the equivalent shell command s Server replies are multi line but always end with xyz lt optional text gt line is a prefix to mark this line xyz is the return code Return codes are a superset to those used in FTP The codes 000 and 001 are special their meaning depends on presence of server output before the end line Session initiation EditThe client initiates SSH or RSH connection with echo FISH bin sh as the command executed on remote machine This should make it possible for the server to distinguish FISH connections from normal RSH or SSH The first two commands sent to the server are FISH and VER to negotiate FISH protocol its version and extensions FISH echo start fish server echo 200 VER 0 0 2 lt feature1 gt lt feature2 gt lt gt echo 000 The server may reply to VER command with a lines like VER 0 0 0 lt feature2 gt lt gt 200 which indicates supported version of the FISH protocol and supported extensions Implementations EditMidnight Commander Lftp fish KDE kioslave with konqueror Krusader or Dolphin tramp fish el implemented it in Emacs TRAMP but might have been thrown away if nobody needed it Emacs TRAMP in overall has similar goals to FISH remote access to files through a remote Unix shell See also EditSSHFS SSH File Transfer ProtocolReferences Edit File Fish c via Midnight Commander Official RepositoryExternal links EditREADME fish from Midnight Commander Retrieved from https en wikipedia org w index php title Files transferred over shell protocol amp oldid 1122364914, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.