Como fazer logon remotamente com a área de trabalho gráfica completa sobre o X11

8

Eu tenho duas máquinas, ambas executando o kubuntu: server & client. Eu gostaria de conectar ao servidor do cliente e iniciar a interface gráfica completa, sem medo de que alguns comandos sejam executados como usuário do cliente.

Então, ssh -XCfunciona e também posso iniciar programas gráficos a partir dele.

No entanto, quando digito startkdeno console ssh, ele diz "O KDE parece já estar sendo executado nesta tela". O que é verdade, mas não para a mesma conta de usuário.

Tentei sair da interface gráfica e fazer login no tty, mas isso (sem surpresa) falhou ao iniciar qualquer programa gráfico, incluindo o kde.

Como, então, posso fazer isso para que eu possa simplesmente fazer login da mesma maneira que entre com um usuário local? Use a máquina cliente como um terminal burro.

velis
fonte

Respostas:

12

O XDMCP foi projetado para isso. No seu servidor, você precisa habilitar o suporte ao XDMCP no seu gerenciador de desktop:

  • se você estiver usando kdm, procure

    [Xdmcp]
    Enable=false
    

    no final do seu kdmrc, mude falsepara truee reinicie kdm;

  • se você estiver usando lightdm, adicione

    [XDMCPServer]
    enabled=true
    port=177
    

    para /etc/lightdm/lightdm.confe reinicie lightdm.

Em seguida, no seu cliente, inicie o X usando

X -query ${SERVER_IP}

(com o endereço IP apropriado) e a tela de login do servidor deve aparecer no seu cliente.

Stephen Kitt
fonte
obrigado, exatamente o que eu precisava. O tio engraçado G não encontrou e eu tive que perguntar.
velis
2
Isso funciona, mas XDMCP significa que você está usando o protocolo X11 simples, que não suporta criptografia. Se isso é um problema, você precisa olhar para outras soluções
Wouter Verhelst
4

Você pode ativar o servidor VNC

Configurações> Compartilhamento> Compartilhamento de tela

Em seguida, o proxy forward 5900 over ssh para o seu PC, se você precisar usar o ssh.

ssh -L 5900:localhost:5900 #destination here

use um cliente de área de trabalho remota (RD) como o Remina para conectar-se ao proxy ssh local;

Conectar> 127.0.0.1:5900

Certifique-se de examinar as falhas de segurança do VNC antes de usá-lo. O VNC deve ser bastante seguro de usar se você estiver encapsulando-o sobre ssh. Este método só funcionará se você tiver um usuário conectado. Para que ele funcione sem um usuário conectado, será necessário fazer o ssh, iniciar um servidor VNC e especificar qual exibição usar IE 0, 1, 2 e em seguida, conecte-o usando o Remina ou algo de qualquer lugar.

enconn
fonte
Eu instalei o x11vnc no ubuntu. Portanto, se nenhum usuário efetuou login no sistema, o comando para iniciar o x11vnc está x11vnc displaynumber:1correto?
ART
3

Você pode iniciar um gerenciador de janelas em uma sessão SSH, mas é necessário garantir que seu servidor X não esteja executando um gerenciador de janelas nesse momento.

Isso pode ser realizado de duas maneiras:

  1. Faça tudo manualmente, em vez de usar startxou um gerenciador de exibição:

    Primeiro, inicie o seu servidor X:

    X -nolisten tcp :0
    

    agora mude para outro console virtual (por exemplo, pressione ctrl + alt + f2) e digite:

    DISPLAY=:0 ssh -XC <host> startkde
    

    Agora volte para o primeiro console virtual e use sua sessão X normalmente. A desvantagem desse método é que ele não inclui a xauthconfiguração (para que, em teoria, todos na máquina remota possam se conectar à sua sessão X, o que é um risco à segurança); você pode adicionar isso.

  2. Use os arquivos .xinitrc(para startx) ou .xsession(para gerenciadores de exibição) para modificar seu gerenciador de janelas:

    Se você configurou seu sistema para que o SSH sem senha funcione (por exemplo, por meio de chaves ssh ou usando o Kerberos ou algum outro mecanismo de autenticação), você pode adicionar a seguinte linha como a linha final nos seus arquivos .xinitrcou .xsession:

    exec ssh -XC <host> startkde
    

    É importante lembrar que tudo o que você adicionar a esses arquivos será executado em vez da configuração normal da sessão do X11. Em alguns casos, pode ser necessário selecionar a opção "Xsession padrão" na tela de logon.

    Mesmo se você não tiver SSH sem senha, isso ainda poderá funcionar, desde que você tenha ssh-askpassinstalado. Se sshdetermina que ele não tem um terminal de controle, mas não têm um $DISPLAYconjunto de variáveis, ele vai usar isso para pedir uma senha.

    A desvantagem desse método é que fica mais difícil fazer login na máquina "local".

Wouter Verhelst
fonte