¿Por qué la pantalla causa problemas con SFTP?

¿Por qué la pantalla causa problemas con SFTP?

Me encanta usar screen, pero realmente no he tenido mucha experiencia usándolo a través de ssh. En el trabajo, recientemente me otorgaron una cuenta shell y decidí intentar configurarla para que la pantalla se ejecute cuando inicie sesión. Estoy iniciando sesión de forma remota a través de ssh con PuTTY.

De todos modos, tenía dos métodos y ambos parecían funcionar bastante bien:

  1. PuTTY configurado para ejecutar /usr/bin/screen -R al conectarse y
  2. Agregué esta línea a mi .bashrc:if [ -z "$STY" ]; then /usr/bin/screen -R; fi

El problema es que más tarde intenté escanear algunos archivos que no pude conectar. Decía "Debe estar conectado a una terminal". También probé Filezilla y tuvo importantes problemas de conexión. Busqué un poco en Google y aparentemente no soy la primera persona a la que se le ha estropeado sftp al intentar usar la pantalla como shell de inicio de sesión.http://winscp.net/forum/viewtopic.php?t=1715

Me preguntaba si alguien podría darme alguna idea de por qué sucede esto porque realmente no tengo ni idea y me interesaría entenderlo y tal vez encontrar una solución.

Respuesta1

Debe colocar todo lo relacionado con shells de inicio de sesión ~/.bash_profiley todo lo relacionado con shells interactivos (sin inicio de sesión) en ~/.bashrc. Desde la página del manual de bash(1):

   ~/.bash_profile
          The personal initialization file, executed for login shells
   ~/.bashrc
          The individual per-interactive-shell startup file

Entonces, en lugar de simplemente hacer un enlace simbólico ~/.bashrc( ~/.bash_profileo viceversa), deberías tener dos archivos separados que contengan cosas algo diferentes.

Ingrese [ -z "$STY" ] && then /usr/bin/screen -Rsolo ~/.bash_profiley luego se ejecutará la pantalla solo cuando esté iniciando sesión en lugar de ejecutar la pantalla cada vez que genere un shell interactivo (no tengo fuentes de scp a mano en este momento, pero tengo un ligero recuerdo de ello). en realidad generando un shell para que el shell genere procesos ~/.bashrc).

información relacionada