Screen es un comando destinado a porder ejecutar instrucciones desde línea de comandos de tal manera que una persona desde un equipo pueda ver lo que esta ejecutando otra desde otro equipo como si se encontrase en el mismo terminal que el primero.
Imaginaros que tenéis un amigo que tiene un problema con su equipo y necesita de vuestra ayuda, pero estáis en vuestra casa y no hay posibilidad de ir a la suya.
Evidentemente se puede pensar: «me conecto por ssh y le resuelvo el problema y ya está«, pero éste amigo aparte de ayudarle, le gustaría saber como se soluciona su problema, de tal forma que pueda ver como se hace para la próxima vez sepa resolverlo por si solo.
Lo primero que se viene a la cabeza es usar aplicaciones como vinagre, krdc o cualquier otro paquete de conexión remota por VNC. Pero ésta no es la única alternativa para conectar remotamente y que el otro usuario veo lo que estás haciendo. En esta ocasión vamos a usar el programa en linea de comandos screen, que tiene la ventaja de comer menos recursos y además cumple con la misma función que aquí queremos resaltar.
Para que esto funcione, nuestro amigo tiene que tener instalado el paquete screen que se encuentra en todas las distribuciones Debian y además tener instalado el servidor ssh cuyos paquetes son openssh-server y openssh-client, para que nosotros podamos conectar a él.
También hay que tener en cuenta que si el router del amigo tiene capado por defecto los puertos o no está configurado, es necesario que configure el mismo para dar acceso por el puerto 22 (utilizado por ssh) y que éste apunte a la IP interna de su equipo. No vamos a entrar en como se hace esto, ya que depende de cada router y por tanto es necesario leerse el manual del mismo, o buscar información por internet de como se realiza ésto en dicho modelo de router.
La forma de usar este comando es:
1.- Nos conectamos al equipo de nuestro amigo a través de ssh de la forma:
# ssh usuario@ip_equipo
Evidentemente este amigo nos tiene que pasar el usuario, la contraseña y la IP de su router necesario para poder conectar a su equipo por ssh, ya que sino no podríamos continuar.
2.- Una vez conectados por ssh ejecutamos screen de la siguiente manera:
# screen -S nombre_sesion
Donde «nombre_sesión» es un nombre cualquiera que le vamos a dar a esta sesión de screen, que será usado también por nuestro amigo para conectarse a nosotros.
3.- Por último nuestro amigo abrirá un terminal en su equipo y se conectará a nosotros con el siguiente comando:
# screen -x nombre_sesion
Donde «nombre_sesion» tiene que ser el mismo nombre que le hemos dado nosotros.
Con esto ya hemos conseguido que cuando escribamos cualquier cosa o ejecutemos cualquier comando, nuestro amigo verá todo lo que nosotros estamos haciendo, y no solo eso, sino que verá también los resultados que van saliendo tras la ejecución de los comandos por nuestra parte, además nuestro amigo podrá interactuar con nosotros ejecutando comandos y nosotros viendo lo que el ejecuta, de una forma recíproca.
Para salir de modo screen solo hace falta ejecutar el comando exit por parte de cualquiera de los dos y la sesión habrá acabado.