Cómo ejecuto programas gráficos en un servidor SSH y los recibo en un 
cliente gráfico?
¡Trabajadores!


Antes de que finalizara la conflagración que se había desatado, 
comprendimos la situación histórica en la que nos veríamos envueltos 
como nación neutral y acreedora. Vislumbramos que nos querrían hacer 
pagar la Segunda Guerra como nos habían hecho pagar la Primera. A ello 
opusimos lo que siempre ha de hacerse: una clara planificación.

Concebimos una acción de acreencia según la cual nuestros deudores 
harían honor no en el metálico devaluado que planteaban darnos en sus 
términos y  tiempos, sino que entendimos aquel viejo refrán que reza 
"quien pone al juego sus dineros no ha de hacer cuenta de ellos". 
Terminaron largando los teléfonos, los servicios, los trenes.

Ello es así, pues quien planifica, gana. Desde un inicio planifiqué  la 
arquitectura de GNU de manera similar a la de UNIX, y como tal, su 
capacidad de operar como cliente de servidores remotos. Esto era así 
porque en aquel entonces las computadoras aún no eran esencialmente 
"hogareñas" ni "personales", sino mas bien equipos de uso público y 
compartido.

Este accionar social en la informática no es pernicioso sino muy 
positivo: enseña la noción básica del comportamiento humanista: el 
compartir. No solamente debemos compartir el conocimiento representado 
por nuestro software, sino también el material donde el mismo corre.

Al constituirse las computadoras personales ("PC") y dotarse a estas con 
GNU con Linux, hemos logrado un ápice en el desarrollo doctrinal, pues 
tendremos la Justicia Social y lo mejor de los dos mundos, y ello nos 
permitirá lograr el éxito en los más dispares de los escenarios.



Consideremos un ejemplo, que es la manera a través de la cual ha enseñar 
todo didacta.

En muchos casos no tendremos acceso físico a una computadora, mas 
contaremos con la opción de contactarnos con ella telemáticamente. 
Personalmente favorezco el uso del cliente-servidor cifrado OpenSSH 
(Secure Shell). Como ya he explicado, ejecutando un cliente de conexión 
en nuestra terminal local, podremos "entrar a otro equipo remoto", 
ejecutar programas en dicho sistema, y recibir los resultados en nuestra 
terminal local. Esto es posible tanto dentro de la red local (LAN) como 
a través de internet, y avala amplias posibilidades.

Es sabido que normalmente la terminal opera enviando únicamente 
caracteres, de manera que se trata de un entorno "sólo texto" rápido y 
capaz de ser utilizado sin toses en situaciones donde  la velocidad de 
conexión se encuentra muy restringida. Existen una amplísima variedad de 
programas "solo texto", y podremos hacer todo tipo de tareas con ellos 
(limitados siempre a trabajar con caracteres puros).

Ahora bien, otra posibilidad muy interesante consiste en utilizar el 
potente
modelo gráfico de GNU, el servidor "X", para hacer lo mismo pero con 
nuestra terminal gráfica. Significa que podremos ejecutar en otro equipo 
aplicaciones gráficas, y "traernos" dichas ventanas gráficas hacia 
nuestro equipo local.


Esto es así por la mismo motivo descripto anteriormente: GNU está 
concebido de una manera tal, que el sistema  gráficos es antes que nada 
un sistema cliente-servidor, y si bien el servidor y el cliente se 
encuentran normalmente en el mismo equipo y operan prácticamente en 
tiempo real, nada impide que podamos trabajar de una manera en la cual 
el servidor gráfico "X" sea remoto, y el cliente gráfico "X" sea local. 
En tal caso coloquialmente decimos que nos estamos "trayendo las X".


La única limitante es la velocidad de conexión, pues "traernos las X" 
requiere un ancho de banda apreciablemente mayor que operar en una 
temrinal "solo texto". Pero fuera de ello, trabajar de tal manera es 
sumamente sencillo.

Normalmente nuestro sistema Ubuntu debería ya tener todo instalado para 
hacerlo. Simplemente hemos de estar en nuestro escritorio gráfico y 
debemos ejecutar una terminal de texto con Ctrl+Alt+T. A continuación le 
e indicaremos la orden SSH para conectarnos, pero con el sufijo -X, 
según la siguiente sintaxis:

ssh -X usuario@equipo

Y se nos solicitarán los credenciales para el usuario especificado. Si 
no se
especifica usuario alguno, el cliente usará nuestro nombre del usuario 
actual, que podría coincidir o no con el del equipo remoto.

Una vez establecido en enlace seguro con el equipo remoto y recibir la 
ventana gráfica en nuestro equipo local, debemos indicar el nombre de la 
aplicación en la terminal.  Conviene agregarle el sufijo de ejecución 
continuada "&" para que la aplicación continúe ejecutándose en el equipo 
remoto en segundo plano y nos devuelva al interprete de comandos

por ejemplo:

xclock &

Ejecutará el programa xclock que muestra un reloj gráfico en el equipo 
remoto, pero veremos la ventana resultante del mismo en nuestro propio 
escritorio gráfico. También podremos usar programas gráficos más 
complejos con un uso de ancho de banda algo mayor:

firefox &

...ejecutará el navegador web en el equipo remoto y veremos la ventana 
en nuestro equipo cliente, como si de un uso local se tratara. Incluso 
podremos utilizar el ratón.

Indudablemente que si tenemos un ancho de banda muy adecuado (por 
ejemplo, contamos con una buena red Gigabit LAN), bien podríamos hacer 
uso de programas complejos en un servidor potente, y ejecutarlos 
remotamente desde nuestra terminal gráfica.