Files transferred over shell protocol
FIles transferred over SHell protocol es un protocolo para usar SSH o RSH en la transferencia de ficheros entre máquinas, y para la gestión de ficheros remotos.
La ventaja de FISH es que todo lo que necesita del lado del servidor es una implementación de SSH o RSH, un shell Unix] y varias utilidades estándar para Unix como ls, cat o dd. Opcionalmente, también puede estar instalado una aplicación servidora para FISH, que ejecute las órdenes asociadas de forma más rápida que un shell de Unix.
El protocolo fue diseñado por Pavel Machek en 1998 para Midnight Commander.
Mensajes del protocolo
Los clientes envían mensajes según la siguiente forma:
#ORDEN_FISH parámetros... órdenes equivalentes del shell, posiblemente multi-línea
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 and 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 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.
Inicio de sesión
El cliente inicia la conexión SSH o RSH con echo FISH:;/bin/sh en la máquina remota. Esto debería permitir al servidor distinguir las conexiones FISH de las SSH o RSH habituales.
Las primeras dos órdenes enviadas al servidor son FISH y VER, para negociar el protocolo FISH, su versión y sus extensiones.
#FISH echo; start_fish_server; echo '### 200'
#VER 0.0.2 <feature1> <feature2> <...> echo '### 000'
El servidor puede contestar a la orden VER con líneas como la siguiente, indicando la versión y extensiones soportadas del protocolo FISH:
VER 0.0.0 <feature2> <...> ### 200
Implementaciones
- Midnight Commander
- Lftp
- fish:// KDE kioslave (con Konqueror)