Iniciar uma nova sessão de desktop (X11) em um host remoto

Iniciar uma nova sessão de desktop (X11) em um host remoto

Eu gostaria de iniciar um novo Xorgservidor em umcontrolo remotohospedar. No começo, pensei que isso seria tão fácil quanto no host local:

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

Com umlocalhost, este comando digitado em um shell de login (não gráfico) (vt/tty) será iniciadooutro Xorgservidor, ou seja, terei um desktop xfce4 depois disso - e este desktop éadicionalpara minha área de trabalho normal iniciada a partir do login no gerenciador de área de trabalho (por exemplo sddm).

No entanto, se eu tentar isso em umcontrolo remoto(fedora) sistema do sshconsole:

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

Eu me pergunto por que é possível começaroutro Xorgnolocalhost, mas recebo esse erro em umcontrolo remotohospedar. Eu sounãoesperando 'ver' o novo desktop do meu sshterminal. Mas eu esperaria poder 'exportar' a nova Xorgárea de trabalho renderizada com, por exemplo x11vnc, .

Existe uma maneira fácil de fazer isso funcionar?

A recompensa é para:

  • Mostrando como começaroutro Xorgservidor em umcontrolo remotomáquina fedora a partir de uma sshsessão de terminal.

As seguintes respostas não serão consideradas:

  • Usando Xvfb, Xvncou algo parecido.
  • Usando algum tipo de tecnologia de desktop remoto (RDP, VNC, Spice, TeamViewer, ...)

Responder1

A resposta é dada pela entrada da linha de comando
$ xinit /usr/bin/startxfce4 -- :4

e a saída do xorg

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

O '$' da sua linha de comando implica que você não é root (deveria ser '#') e a saída implica que você não tem a permissão necessária.

Você poderia tentar,
$ sudo xinit /usr/bin/startxfce4 -- :4
mas isso inicia o xfce4 com privilégios de root.

Eu recomendaria iniciar o x-server como um serviço systemd e separado de qualquer x-client.

Responder2

alémmenciona um problema de permissões e eu concordo.

Em essência, tudo o que você sabe é que o comando falha porque não consegue acessar o arquivo /dev/tty0.Apenas ler as páginas de manual determina que o servidor xorg possui um wrapper binário. A máquina host deve configurar essas opções se isso não estiver claro.

A maneira correta é usar os sistemas existentes. Como você precisa considerar o SSH na equação, esteja ciente de que isso expõe seu sistema. Dito isto, a página de manual diz para atualizar o /etc/X11/Xwrapper.configpara permitir o uso do terminal através do needs_root_rights=yes. Acredito que esta seja a opção que resolverá os problemas de inicialização.

informação relacionada