Iniciar una nueva sesión de escritorio (X11) en un host remoto

Iniciar una nueva sesión de escritorio (X11) en un host remoto

Me gustaría iniciar un nuevo Xorgservidor en unremotoanfitrión. Al principio pensé que esto sería tan fácil como lo es en el host local:

$ xinit /usr/bin/startxfce4 -- :4

En unlocalhost, este comando escrito en un shell de inicio de sesión (no gráfico) (vt/tty) se iniciaráotro Xorgservidor, es decir, tendré un escritorio xfce4 después de esto, y este escritorio esadicionala mi escritorio normal comenzó desde el inicio de sesión desde el administrador de escritorio (por ejemplo sddm).

Sin embargo, si lo intento en unremoto(fedora) sistema desde la sshconsola:

X.Org X Server 1.20.6
X Protocol Version 11, Revision 0
Build Operating System:  5.0.6-200.fc29.x86_64 
Current Operating System: Linux noah.siteos-lokal.de 5.5.10-200.fc31.x86_64 #1 SMP Wed Mar 18 14:21:38 UTC 2020 x86_64
Kernel command line: BOOT_IMAGE=(hd0,msdos3)/vmlinuz-5.5.10-200.fc31.x86_64 root=/dev/mapper/vg_sdd-root ro rd.luks.uuid=luks-a9eba963-ff2e-499b-a298-0659c5e29359 rd.lvm.lv=vg_sdd/root rd.lvm.lv=vg_sdd/swap rhgb quiet resume=/dev/disk/by-uuid/73299393-6bdb-4230-a1ca-096e5ee32396 splash=silent quiet video.use_native_backlight=1
Build Date: 25 November 2019  12:00:00AM
Build ID: xorg-x11-server 1.20.6-1.fc31 
Current version of pixman: 0.38.4
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/home/tpasch/.local/share/xorg/Xorg.4.log", Time: Fri Apr  3 19:38:52 2020
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(EE) 
Fatal server error:
(EE) parse_vt_settings: Cannot open /dev/tty0 (Permission denied)
(EE) 
(EE) 
Please consult the Fedora Project support 
         at http://wiki.x.org
 for help. 
(EE) Please also check the log file at "/home/tpasch/.local/share/xorg/Xorg.4.log" for additional information.
(EE) 
(EE) Server terminated with error (1). Closing log file.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

Me pregunto por qué es posible empezar.otro Xorgsobre ellocalhost pero me sale este error en unremotoanfitrión. Soynoesperando 'ver' el nuevo escritorio desde mi sshterminal. Pero esperaría poder "exportar" el nuevo Xorgescritorio renderizado con, por ejemplo x11vnc, .

¿Existe una manera fácil de hacer que esto funcione?

La recompensa es para:

  • Mostrando cómo empezarotro Xorgservidor en unremotomáquina fedora desde una sshsesión de terminal.

No se tendrán en cuenta las siguientes respuestas:

  • Usando Xvfb, Xvnco similares.
  • Utilizar algún tipo de tecnología de escritorio remoto (RDP, VNC, Spice, TeamViewer,...)

Respuesta1

La respuesta la da la entrada de la línea de comando.
$ xinit /usr/bin/startxfce4 -- :4

y la salida de xorg

    Fatal server error:
    (EE) parse_vt_settings: Cannot open /dev/tty0 (Permission denied)

El '$' de su línea de comando implica que no es root (debería ser '#') y el resultado implica que no tiene el permiso requerido.

Podrías intentarlo
$ sudo xinit /usr/bin/startxfce4 -- :4
, pero esto inicia xfce4 con privilegios de root.

Recomendaría iniciar x-server como un servicio systemd y separarlo de cualquier x-client.

Respuesta2

más allámenciona un problema de permisos y estoy de acuerdo.

En esencia, todo lo que sabes es que el comando falla porque no puede acceder /dev/tty0.Con solo leer las páginas de manual se determina que el servidor xorg tiene un contenedor binario. La máquina host debe configurar estas opciones si eso no está claro.

La forma correcta es utilizar los sistemas existentes. Dado que debe considerar SSH en la ecuación, tenga en cuenta que esto expone su sistema. Dicho esto, la página de manual dice que se actualice /etc/X11/Xwrapper.configpara permitir el uso del terminal a través de needs_root_rights=yes. Creo que esta es la opción que resolverá los problemas de inicio.

información relacionada