Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

Salida gráfica remota -> ordenador local

BocaDePez
BocaDePez

Hola a todos.

No sé si podréis echarme una mano con este asuntillo. Tengo en la oficina un servidor desde el que puedo acceder a la intranet de la empresa. Yo, desde mi casa, obviamente no puedo ver dicha web interna, pero sí que puedo conectarme por ssh a la máquina de la oficina y desde ahí acceder a la intranet.

Lo que pasa es que por ssh dispongo de una consola y puedo navegar en modo texto con lynx, pero lo que me interesa es abrir el netscape de la oficina desde la consola y que su salida gráfica aparezca en _mi_ máquina local... Por cierto, mi ordenador tiene _solo_ una ip privada porque está detrás de un router.

Así a lo tonto me estoy volviendo loco y para colmo no conozco a nadie que pueda echarme un cable.

PD: Me conecto con ssh -X para habilitar el forwarding, pero nada.

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
BocaDePez
BocaDePez

que tu servidor grafico no inice con el flag -nolisten tcp activado ya que sino no podras iniciar ventanitas remotas ya que lo tienes capado por tu parte... yo ayer mismo tenia el mismo problema con dos debian's y lo resolvi asi, espero que te sirva, sino... tira del vnc, es un tanto mas radical pero bueno, sigue siendo una alternativa... otra alternativa supongo... seria un proxy en el pc de tu empresa y conectarte a traves de el en tu casa... asi tmb tendrias acceso a la intranet. Saludos desde Mallorca

;)

Velaznito

y una vez te sale la consola remota, escribes netscape y ¿no se ejecuta nada? (ten en cuenta que tardará entre arrancar y las comunicaciones....). Porque mira que me extraña... Sino, como te dicen arriba siempre te puede quedar el vnc.

Lo del «-nolisten tcp» es otra cosa, piensa que al conectarse con ssh -X está lanzando el proceso gráfico en el servidor, con lo que no se conecta por tcp.

Stendall

Primero:
Como ya han comentado los compañeros, en el ordenador que vayan a correr las X localmente, debes de tener configuradas las X para que acepten conexiones entrantes.
Segundo:
En el ordenador con las X en modo local, debes de autorizar al otro, en el que se van a ejecutar las aplicaciones por medio de ssh, eso se hace con xhost+ nombre_equipo_remoto y el nombre debe de estar con su equivalencia de ip en el fichero /etc/hosts.
Tercero y por ultimo:
La variable DISPLAY debe de estar configurada en el ordenador remoto, para que use como servidor de X el ordendor en el que se ejecutan las X en modo local. Para eso basta un export DISPLAY=nombre_servidor:0, o en su defecto, pasarle la variable como recurso a la aplicacion que quieras ejecutar.

Espero que te sirva,
-= Un saludo =-

🗨️ 2
BocaDePez
BocaDePez

Hola, muchas gracias.

Hago lo que me contáis, pero el problema es al exportar la variable en la máquina remota: "export DISPLAY=192.168.0.31" no me vale (creo) porque esa ip (que es la mía y la única que tiene mi equipo) es privada y el pc remoto no será capaz de encontrarla. Y si pongo la ip externa de mi servidor (a través del cual me enruto con nat) tampoco funcionará porque el servidor no tiene X.

¿será que no se puede? :-?

anthrax

Pero lo que no sabes es que en el tema de "forwadear" las conexiones a las X's, es el propio ssh el que se encarga de asignar a la variable DISPLAY el valor correcto. :)

Saludos 8)

undertow

1.Abres la configuración de KDM para que permita conectar via TCP.
vi /etc/kde3/kdm/Xservers

2.Activas la conexion por TCP cambiando
:0 local@tty1 /usr/X11R6/bin/X -nolisten tcp -dpi 100 vt7
por:
:0 local@tty1 /usr/X11R6/bin/X -dpi 100 vt7

3.Permitir la conexion al servidor X desde otros hosts:
xhosts +

Conectas por ssh

🗨️ 4
Velaznito

si utiliza ssh -X, ya que se crea un tunel ssh y los procesos gráficos se lanzan en el servidor. Lo que me extraña es que no le funcione, porque a mi sí, y tengo en el servidor un «-nolisten tcp». Tampoco puede ser debido a que tenga IP privada y salga a través de un router (aunque haga NAT), ya que la conexión ssh la realiza desde la máquina interna (y va correctamente) y las X irán por este túnel creado.

Al del popst original, intenta hacer un «ssh -X -vv» para depurar y ver qué te dice el ssh sobre el túnel de las X...

🗨️ 3
undertow

En todos los casos que yo conozco si no activas el xhost no funciona, otra cosa es que tu lo tengas para que por defecto conecte todo.
De la forma que comento arriba te aseguras que funciona, de la que tu dices no.

haciendolo exactamente como tu dices:
under@ariel:~$ xcal
Error: Can't open display:

con las explicaciones que has dado por lo menos a mi no me funciona, de todas maneras las X y el ssh siempre han sido una historia muy rara :P

🗨️ 2
Velaznito

te lo digo que yo lo he usado bastante, sin necesidad de usar xhost (y te puedo asegurar que no tengo por defecto permitido) pero el problema va a ser lo que dice anthrax...

🗨️ 1
anthrax

diría que:


Se le puede pasar al servidor X lo de -nolistentcp (es más, es preferible por que es más seguro que no hacerlo) porque el servidor X se lanza en local. O sea se ejecuta en la misma máquina que hace de servidor ssh.
(Otra cosa muy diferente es que el servidor web esté en otra máquina en la red local de la empresa.)


Ok, se debe usar al ejecutar el cliente ssh el -X, pero el servidor sshd también debe permitir el forwarding de conexiones a las X's.Por defecto no se permite. Así que hay que activarlo en el fichero de configuración del servidor tal como dice el propio man del fichero de configuración del servidor ssh, el sshd_config:

X11Forwarding

Specifies whether X11 forwarding is permitted. The argument must
be ``yes'' or ``no''. The default is ``no''.
When X11 forwarding is enabled, there may be additional exposure
to the server and to client displays if the sshd proxy display is
configured to listen on the wildcard address (see X11UseLocalhost
below), however this is not the default. Additionally, the
authentication spoofing and authentication data verification and
substitution occur on the client side. The security risk of
using X11 forwarding is that the client's X11 display server may
be exposed to attack when the ssh client requests forwarding (see
the warnings for ForwardX11 in ssh_config(5)). A system adminis-
trator may have a stance in which they want to protect clients
that may expose themselves to attack by unwittingly requesting
X11 forwarding, which can warrant a ``no'' setting.

Note that disabling X11 forwarding does not prevent users from
forwarding X11 traffic, as users can always install their own
forwarders. X11 forwarding is automatically disabled if UseLogin
is enabled.

Saludos 8)
P.D: Lo de siempre, RTFM, o lo que es lo mismo, man sshd_config ;)

BocaDePez
BocaDePez

Joer, pues aquí sigo sin conseguirlo :-(

El único problema que tengo es que en la máquina remota pongo "export DISPLAY=linux:0.0", donde linux es mi ordenador local que NO TIENE IP PUBLICA... Yo creo que por eso no va.

🗨️ 2
anthrax

olvidaria de dar valor a la variable DISPLAY. Ya se encarga de ello el propio ssh.

Saludos 8)

undertow

has probado como comento arriba?

editado:

Tienes puesto lo que comenta anthrax en el ssh de la oficina??

LatinSuD

Si no quieres correr otra sesion X aparte sin el -nolisten puedes correr una sesion X dentro de la actual con Xnest.

(Xnest :1 & DISPLAY=:1; xterm & twm &) &

Luego puedes lanzar el forwarding manualmente asi:
ssh -f -N -R 6001:localhost:6001 usuario@host

Ahora abres un ssh normal a la maquina remota y en remoto:
export DISPLAY=localhost:1
netscape

---

De todas formas es posible que prefieras esta otra opcion, que uso bastante, que consiste en redireccionar directamente el trafico del servidor web hacia tu maquina:

ssh -f -N -L 80:IpServidorWeb:80 usuario@host

Quizas necesites añadir una entrada en /etc/hosts si el servidor web se empeña en usar su nombre canonico o tiene dominios virtuales.

De este modo simplemente abres tu navegador en modo local y tecleas la direccion http://localhost

--

En cualquier caso todo depende de la configuracion del servidor ssh, pero no debes tener problemas por los firewalls.