No se pueden crear pantallas nuevas cuando se inicia sesión en un servidor a través de ssh


3

Cuando está físicamente conectado a mi "servidor" (escribiendo comandos desde el escritorio de un iMac de mediados de 2006), da el siguiente resultado:

mac~$ screen -ls
No Sockets found in /var/folders/ht/rhhsw0515vl_ym59683911400000gn/T/.screen.

bash$ screen -dmS foo
bash$ screen -ls
There is a screen on:
    4250.foo    (Detached)
1 Socket in /var/folders/ht/rhhsw0515vl_ym59683911400000gn/T/.screen.

bash$ 

¿Cuál es el comportamiento que uno esperaría? Sin embargo, al ejecutar los mismos comandos a través de ssh autenticado por RSA, el screen -dmS foocomando no parece funcionar:

remote-bash$ screen -ls
No Sockets found in /var/folders/h4/_8scfsb54kd3mm7q6n9lq8nc0000gn/T/.screen.

remote-bash$ screen -dmS foo
remote-bash$ screen -ls
No Sockets found in /var/folders/h4/_8scfsb54kd3mm7q6n9lq8nc0000gn/T/.screen.

remote-bash$ 

Al probar el comando de pantalla estándar, sin opciones, todo el shell se cuelga y no se puede salir con ^ C.

Tenga en cuenta que puedo ver, adjuntar y eliminar pantallas iniciadas en el servidor, pero no puedo iniciarlas a través de ssh.

¿Hay alguna explicación para esta inconsistencia o el problema es peculiar de mi máquina?

Respuestas:


1

Lo primero que me viene a la mente es que la pantalla de shell se inicia cuando se conecta a través de ssh muere inmediatamente por alguna razón. Intenta usar

screen -LdmS foo

en su lugar y luego mire el contenido del archivo screenlog.0 para averiguarlo.

EDITAR después del comentario OP:

parece que la pantalla no puede iniciar un shell. Supongo que su servidor ssh no está configurando la variable de entorno SHELL correctamente o su shell necesita algo más para ejecutarse que su servidor ssh no proporciona de manera predeterminada. Por favor verifique la salida de

echo $SHELL

e intente ejecutar el mismo shell a mano (es decir, ejecute el comando que ve en la salida).

Además, podría haber problemas de permisos en la terminal. Bajo mi OSX 10.9.5, justo ahora, eso es / dev / ttys000, en su caso puede usar el comando who para averiguar el suyo. La pantalla necesita permiso de escritura para el usuario actual en ese terminal. Ahora leí en su comentario que los permisos en su caso son:

crw--w---- 1 sandersfamily tty 16, 1 7 Mar 23:31 ttys001

¿Es "sandersfamily" el usuario con el que inicia sesión a través de ssh? Si no, entonces ese es el problema.


Ejecuté el comando, pero la ejecución ls -a | grep screenno devolvió nada en los directorios ~ / o /.
catalogue_number

solo $SHELLdevoluciones de eco/bin/bash
catalogue_number

¿Qué pasa si inicia un / bin / bash usted mismo en lugar de la pantalla? ¿Funciona?
Lucio Crusca

Lanzar / bin / bash funciona absolutamente bien, es solo screenque se comporta de manera extraña.
catalogue_number

¿Qué pasa con los bits de permiso de terminal? (Ver nueva edición en mi respuesta).
Lucio Crusca

0

¡He encontrado el problema!

Resulta que, por alguna razón u otra, la pantalla no puede escribir sin PAM habilitado. Que había leído anteriormente que, incluso si PasswordAuthenticaitony ChallengeResponseAuthenticationse ponen a no, PAM sigue siendo una vulnerabilidad, por lo que he deshabilitado en el /etc/sshd_configarchivo.

Todo lo que tomó fue cambiar UsePAM no a UsePAM yesin /etc/sshd_config, y el comando funciona como se esperaba. No sé si hay una manera de usar screensin PAM habilitado, pero no creo que sea un problema de seguridad especialmente grave para mis propósitos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.