stringtranslate.com

Archivos transferidos a través del protocolo shell

El protocolo de archivos transferidos mediante Shell ( FISH ) es un protocolo de red que utiliza Secure Shell (SSH) o Remote Shell (RSH) para transferir archivos entre computadoras y administrar archivos remotos.

La ventaja de FISH es que todo lo que requiere en el lado del servidor es una implementación de SSH o RSH, un shell de Unix y un conjunto de utilidades estándar de Unix (como ls , cat o dd , a diferencia de otros métodos de acceso remoto a archivos a través de un shell remoto, scp por ejemplo, que requiere scp en el lado del servidor). Opcionalmente, puede haber un programa de servidor FISH especial (llamado start_fish_server ) en el servidor, que ejecuta comandos FISH en lugar del shell de Unix y, por lo tanto, acelera las operaciones.

El protocolo fue diseñado por el hacker checo de kernel de Linux, Pavel Machek, en 1998 para la herramienta de software Midnight Commander . [1]

Mensajes de protocolo

El cliente envía solicitudes de texto del siguiente formato:

Argumentos #FISH_COMMAND...comandos de shell equivalentes,que puede ser de varias líneas

Los comandos fish están todos definidos, los equivalentes del shell pueden variar. Los comandos fish siempre tienen prioridad: se espera que el servidor ejecute un comando fish si lo entiende. Sin embargo, si no lo entiende, puede intentar ejecutar un comando del shell. Cuando no hay un programa de servidor especial, el shell de Unix ignora el comando fish como comentario y ejecuta el o los comandos del shell equivalentes.

Las respuestas del servidor son de varias líneas, pero siempre terminan con

### xyz<texto opcional>

línea. ###es un prefijo para marcar esta línea, xyzes el código de retorno. Los códigos de retorno son un superconjunto de los utilizados en FTP . Los códigos 000 y 001 son especiales, su significado depende de la presencia de la salida del servidor antes de la línea final.

Inicio de sesión

El cliente inicia la conexión SSH o RSH con echo FISH:;/bin/shel comando que se ejecuta en la máquina remota. Esto debería permitir al servidor distinguir las conexiones FISH de las conexiones RSH o SSH normales.

Los dos primeros comandos enviados al servidor son FISHy VERpara negociar el protocolo FISH, su versión y extensiones.

#PEZeco; iniciar_servidor_fish; eco '### 200'
#VER 0.0.2 <característica1> <característica2> ​​<...>eco '### 000'

El servidor puede responder al comando VER con líneas como

VER 0.0.0 <característica2> ​​<...>### 200

que indica la versión compatible del protocolo FISH y las extensiones compatibles.

Implementaciones

Véase también

Referencias

  1. ^ Archivo: Fish.c - vía el repositorio oficial de Midnight Commander
  2. ^ https://github.com/MidnightCommander/mc/blob/master/src/vfs/fish/fish.c [ URL desnuda ]
  3. ^ "Característica: considere portar FISH (transferencia de archivos sobre el sistema de archivos SHell) de Midnight Commander · Número 1819 · elfmz/Far2l". GitHub .
  4. ^ "LFTP/SRC/Fish.cc en master · lavv17/LFTP". GitHub .
  5. ^ "Kio-extras/Fish/Fish.CPP en master · KDE/Kio-extras". GitHub .
  6. ^ commit relacionado en Emacs
  7. ^ "Re: El método del pescado de Tramp".

Enlaces externos