cómo ssh -Y y luego su - <otro usuario> y aún reenviar aplicaciones X a su máquina local


13

Es bastante fácil 'buscar' (es decir, dibujar localmente) una aplicación de Linux que se ejecuta de forma remota: si voy ssh -Ya la máquina remota y ejecuto una aplicación, esa aplicación seguramente aparecerá en mi escritorio local.

Sin embargo, si mientras estoy en la máquina remota, me dirijo sua un usuario diferente, no puedo reenviar la aplicación X a mi máquina local. Dice wrong authentication.

No estoy seguro de cómo abordar este caso. El echo $DISPLAYsigue siendo correcto (establecido por el ssh -Yinicio de sesión inicial ), pero la cookie de sesión probablemente solo esté configurada para el usuario inicial que inició sesión en ssh.

¿Cómo puedo superar esta dificultad y reenviar otras aplicaciones X que se ejecutan desde diferentes usuarios?

La razón por la que no estoy enviando mensajes directamente es porque no quiero que se pueda acceder a ese usuario a través de ssh (es el usuario de "virtualbox", que obviamente es un objetivo fácil para los robots que intentan enviar mensajes a ese servidor) ...

Respuestas:


12

Cuando se conecta a una máquina de eliminación a través de ssh con el reenvío X11 habilitado, ssh en el servidor crea un .Xauthorityarchivo en el directorio de inicio del usuario. Debido a que ssh escucha X11 en un socket TCP, cualquiera puede conectarse. Debido a que cualquiera puede conectarse, necesitamos alguna forma de evitar que cualquiera use su pantalla. Esto se hace con ese .Xauthorityarchivo. El archivo contiene una "cookie" que se presenta al servidor X11 que verifica que el cliente debe poder conectarse.

Omitiendo todos los detalles, si copia ese .Xauthorityarchivo en el directorio de inicio de su usuario objetivo (y le da la propiedad), debería poder conectarse.


Vale la pena señalar que incluso después de hacer esto, la variable DISPLAY debe configurarse correctamente después de cambiar de usuario. Esto puede ser un problema al usar 'sudo' que puede filtrar el entorno.
Chris Arguin

8
  1. ssh -Y a la máquina remota como a ti mismo.
  2. Una vez allí, escriba xauth list. Aparece una lista de artículos de MAGIC-COOKIE. Su sesión de inicio de sesión es probablemente la última en la lista. (Verifique esto observando el nombre de host y el código de número UNIX, y compárelo con el nombre de host desde el que descascó y su host local actual: ## DISPLAY variable de env.)
  3. Cambiar de usuario.
  4. Escriba xauth add+ toda la línea MAGIC-COOKIE desde arriba.
  5. Los gráficos deberían aparecer ahora. Pruébalo con un rápido xlogo.

2
no "+" en xauth add. Por ejemplo, solo xauth add ubuntu / unix: 10 MIT-MAGIC-COOKIE-1 6b49de7c34409d5ac69beab31d12ec94
ejecutar el

1
USER="otherusername" && MAGIC_COOKIE=`xauth list | tail -n1` && su -c "xauth add $MAGIC_COOKIE" $USER && su - $USER
7yl4r

3

Me gusta la respuesta de Randy, pero no funcionó para mí.

Esto es lo que tengo que trabajar:

  1. ssh -Y as user1
  2. xauth list | grep `uname -n`
  3. Cambiar a usuario2
  4. unset XAUTHORITY
  5. xauth generate :0 .
  6. xauth add :0 . <KEY-FROM-STEP-2>

Tenga en cuenta los dos períodos en los pasos 5 y 6.

Si solo sigo la respuesta de Randy, la XAUTHORITYvariable user2 todavía apunta al .Xauthorityarchivo user1 . Y su sintaxis de la tecla + no funcionó.


2

Esta no es una respuesta, así que si encuentras una, obviamente es preferible.

Si no, y esta es la causa raíz de su enigma:

La razón por la que no estoy enviando mensajes directamente es porque no quiero que se pueda acceder a ese usuario a través de ssh (es el usuario de "virtualbox", que obviamente es un objetivo fácil para los robots que intentan enviar mensajes a ese servidor) ...

Me parece que no es un gran razonamiento. "Qué bots apuntan" WRT un sshd bien configurado es en gran medida irrelevante. ¿Van a zumbar por el puerto 22 por todas partes? Aparentemente si. ¿Esto significa que realmente tienen una posibilidad de éxito?

Intenta buscar en Google una historia sobre alguien que haya tenido un bot anónimo al azar con éxito en sshd. Estoy seguro de que debe haberle sucedido a alguien en algún lugar (y, por supuesto, es posible que nunca lo sepas), pero no puedo encontrar ningún informe al respecto. Sería interesante leer cuál fue la configuración utilizada.

SSH es muy seguro cuando se usa correctamente. Si no fuera así, el comercio por internet no sería factible. Entonces, ¿por qué se molestan estos bots? Por "usado correctamente" quiero decir, principalmente, con pares de claves públicas / privadas obligatorias. Si hace eso y confía en que su clave privada es segura (y debería estarlo), confíe en sshd.

Creo que la razón por la que ocurren todos los "intentos de intrusión" es que hay una gran cantidad de usuarios que no hacen cosas como hacer preguntas en U&L;) y no leen páginas de manuales y usan la protección con contraseña solo, que es como dejar su tarjeta de cajero automático en una máquina en algún lugar con un letrero que dice "¡Adivina!".

Sin embargo, si piensa en su clave privada como su tarjeta de cajero automático, como algo que está físicamente asegurado por usted (lo que es esencialmente), entonces el objetivo se vuelve mucho más etéreo. Todo lo que esos bots pueden hacer es demostrar que sí, realmente tomaría miles de máquinas miles de años trabajando juntos para forzar la fuerza bruta de una clave de 2048 bits.

Si está cansado de leer informes de intentos de robo, cambie su puerto. He visto a la gente aquí caca-poo como "seguridad por oscuridad", sin embargo, un sshd que esté debidamente protegido en el puerto 22 no será menos seguro en el puerto 57, pero no será molestado al azar. Por supuesto, todos tus enemigos de drones podrían simplemente escanear puertos toda la IP, pero ¿sabes qué? Ellos no. Supongo que esto se debe a que lo que están buscando es alguien que ejecute un sistema que ni siquiera lo haya visto /etc/ssh/sshd_config, mucho menos educado y sintonizado.


Estoy de acuerdo con todo lo que dices. pero siempre estoy insegura (¿no es eso lo que te enseñan en muchas situaciones después de que te quemas?). Para ser honesto, la PC en la que intento iniciar sesión es un firewall (sin acceso desde el exterior). Su ssh está en un puerto alto, tiene una contraseña difícil, pero todavía no puedo evitar sentir que "virtualbox" es un nombre público. uno que alguien en algún lugar puede optar por incorporar en un código bot. Las claves SSH son una solución maravillosa, especialmente si se usan con protección por contraseña. Pero tendría que tener que llevar una distro liviana de Linux en USB si tuviera que usarlos.
nass
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.