OK - então eu descobri finalmente. Como o @gnur sugere, xrdp
é a coisa a ser usada, mas não está pronta para uso. Parece que o XRDP que vem com o Ubuntu é antigo (ish), então:
- O XRDP deve ser criado a partir da origem. Obtenha a fonte aqui e siga o manual muito legal aqui para colocar as coisas em ordem de funcionamento razoável. Sem isso, a reconexão de sessão não funciona, o que é um pouco problemático.
Eu fiz alguns extras para colocar as coisas em forma:
- O XRDP não funciona como outras X coisas que fazem com
xmodmap
, portanto, se o teclado não estiver funcionando como você deseja em uma sessão XRDP, será necessário:- Faça logon em uma sessão de console real (ou seja, não via XRDP, mas talvez pelo console do ESXi ou fisicamente) e adapte as coisas ao layout do teclado nessa sessão. Experimente
setxkbmap -model pc104 -layout <your-layout>
(dk
no meu caso) - Em seguida, despeje o layout de trabalho em um arquivo
.ini
que o XRDP pode carregar. Faça isso:xrdp-genkeymap mymap.ini
- Descubra o que realmente nomear o arquivo, olhando
/var/log/xrdp.log
e procurando por algo comolocal keymap file for 0x0406 found
. Em seguida, nomeie seu arquivo/etc/xrdp/km-0406.ini
. Isso demorou um pouco para descobrir.
- Faça logon em uma sessão de console real (ou seja, não via XRDP, mas talvez pelo console do ESXi ou fisicamente) e adapte as coisas ao layout do teclado nessa sessão. Experimente
- Modifique seu
/etc/xrdp/xrdp.ini
para ter uma descrição de sessão assim: %código% As partes principais são[xrdp1] name=sesman-Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 delay_ms=2000
elib
- sem o atraso, não tenho desktop após o login em uma sessão XRDP. Parece que a sessão subjacente do VNC demora um pouco para ficar pronta e, se as conexões forem tentadas cedo demais, você não recebe nada. - Coloque algo sensato no seu arquivo
delay_ms
. Eu tenho~/.xsession
, mas que veio com outra esquisitice - conclusão de tabulação em janelas de terminal não funcionou. Aparentemente, o XFCE usa a tecla tab para troca de janela. Para corrigir isso, você precisa editar (talvez também haja uma coisa da GUI)xfce4-session
e aplicar a correção descrita aqui .
É isso! Com esta execução, eu tenho um ótimo substituto para o XDMCP que permite aos usuários tratarem as sessões do Ubuntu como fazem as sessões do Windows. Assim como eu queria: -)
EDITAR tendo usado isso há algum tempo, descobri que a solução é viável, mas não tão estável. De tempos em tempos, a reconexão da sessão não funcionará e os usuários serão deixados em um estado limbo, incapazes de efetuar logon. Reiniciar os serviços corrige isso, mas não se sustenta.
Então - eu procurei mais por uma solução de trabalho - e encontrei uma! Meu novo melhor amigo é o x2go , que é um servidor X autônomo com um pacote de cliente especial que vem em vários tipos de sistema operacional .
EDIT 2: OK - então ainda mais sobre isso. Descobri que, embora o X2go seja bastante interessante, o cliente Windows possui um capricho que praticamente o impede de trabalhar com logins SSH baseados em chave, por isso tive de ativar logins regulares do PW para o host da minha área de trabalho. Não é o ideal, mas isso não muda o fato de que o X2go funciona muito bem em todos os outros aspectos.
EDIT 3:
Scarygliders tem um script muito legal neste momento que obtém, compila e instala tudo o que é necessário para uma configuração brilhante de sessão RDP. Eu praticamente elimino a necessidade das outras coisas que encontrei. Obtenha os scripts aqui por clonagem. Em seguida, execute ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
. Agora eu tenho um host de desktop que atende cinco usuários, todos fazendo desenvolvimento em Python e tal. Muito bom.