Supongamos que quiere fuerza bruta, consiga una conexión con X ...
Supongamos que ya está ejecutando sus comandos en el servidor (donde se ejecuta X), de lo contrario, haga que eso funcione primero y luego use 'ssh -X user @ server) del cliente después;).
Puede haber varias formas de ejecutar los comandos xauth, por ejemplo, puede estar usando 'sudo', pero eso puede perder o cambiar las variables de entorno. Deben preservarse las siguientes variables de entorno: DISPLAY y XAUTHORITY. Para probar si ese es el caso, podría ejecutar 'echo $ XAUTHORITY' de la misma manera que ejecuta sus comandos, pero asegúrese de no expandir las variables de entorno antes de ejecutar esos comandos. Por ejemplo, intente: sudo bash -c 'echo "$ XAUTHORITY"' para ver qué es realmente XAUTHORITY después de ejecutar sudo (si desaparece, es posible que deba agregar algo a su archivo de sudoers, ver en otro lugar).
Finalmente, ejecute el siguiente comando como el usuario con el que desea obtener acceso en el servidor:
xauth info
Esto mostrará el 'Archivo de autoridad' que se usará (/root/.Xauthority por defecto, para root, o algo así como /home/theuser/.Xauthority). Si muestra el archivo .Xauthority correcto, entonces no tiene que preocuparse por la variable de entorno XAUTHORITY en realidad (en realidad, no sabría cuándo no lo haría, excepto si desea manipular un lugar no estándar de ese archivo )
Elimina ese archivo (si es que existe):
rm /root/.Xauthority
Reemplace /root/.Xauthority
con el archivo XAUTHORITY correcto para su caso.
Recree, pero vacío (esto es necesario para muchos comandos):
touch /root/.Xauthority
En este punto, obtendrá el error Sin protocolo especificado , incluso si recibió MIT-MAGIC-COOKIE-1 no válido anteriormente. Encuentre el archivo de autoridad que el servidor X está usando en este momento:
ps aux | grep Xorg
Esto debería mostrar algo como:
root 1153 0.0 1.0 149560 44464 tty7 Ss+ dec02 0:00 /usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711} -background none -noreset -displayfd 17 vt7
El nombre del archivo después -auth
es el que necesita en el siguiente comando. Ejecuta esto como root:
sudo xauth -f '/var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711}' list
Eso enumera una clave hexadecimal de 32 dígitos. Por ejemplo, la salida podría ser:
hostname/unix:0 MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
Use eso para generar su archivo .Xauthority (como usuario que necesita iniciar sesión nuevamente):
xauth add $DISPLAY MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
reemplace 'c0eaf749aa252101a0f57d5087089db7' con lo que le devolvió el comando de lista. Ahora su .Xauthority debe tener un tamaño de 51 bytes y puede conectarse al servidor X (nuevamente).