Olá
Se você quer acessar um Linux no estilo "RDP" como você mencionou, já tentou o Thinlinc?
www.thinlinc.comThinlinc é uma ferramenta para esse tipo de acesso remoto no Linux, com algumas vantagens: É fácil de configurar, permite múltiplas conexões e diferentes usuários simultâneos, desempenho muito bom que parece que você está na frente do computador que está sendo acessado. É comercial, porém tem uma licença gratuita para até 5 conexões simultâneas.
Eu fiz um vídeo de comparação dele com algumas outras ferramentas para mostrar o desempenho, dá até pra usar ele pra assistir um vídeo de streaming na máquina que está sendo acessada com boa qualidade.
https://youtu.be/xBs0M8-XTJo?t=226 (está em inglês pois eu tinha feito essa demonstração para outro fórum em inglês, mas se tiver dúvidas, é só avisar.)
O processo é simples: você instala o Thinlinc Server (servidor) na máquina Linux que vc quer acessar e aí o Thinlinc Client (cliente) na máquina que quer usar para o acesso. Esse cliente está disponível para diferentes sistemas operacionais (Windows, Mac, Linux em diferentes distros e arquiteturas e até dá pra acessar pelo navegador web) e é muito leve, dá pra rodar em um Raspberry Pi 2 (e acho que só não rodou no Raspberry Pi 1 pq não está compilado pra arquitetura dele que é mais velha).
Eu tinha uma demanda de compartilhar um computador melhorzinho aqui de casa com minha esposa e meu sobrinho, para não ter que comprar outro computador (que está caríssimo). Consigo conectar 2 pessoas "remotas" mais um usuário local num i5-4200 8GB de 2013 e usarmos satisfatoriamente. Acabei extendendo essa solução do Thinlinc pra acessar minha máquina do trabalho e o desempenho foi muito bom (tem no vídeo mais pra frente). Eu já tinha brincado com VNC, Anydesk e umas outras ferramentas, mas cada uma delas tinha um ou outro problema que me incomodava... VNC às vezes me parecia inseguro e até dá pra configurar o VNC pra abrir uma seção à parte (sem ser "olhando" a tela do computador localmente), mas me deu algum trabalho e a performance não era tanta. Anydesk vai pelo mesmo caminho do VNC de ver o que está no computador local e nem te deixa criar uma sessão à parte independente.
O Thinlinc tem até um esquema pra renderizar vídeo diretamente no hardware do servidor usando VirtualGL. Esse esquema ainda não usei, mas já estou sabendo de umas universidades por aí que usam para poder usar programas com gráficos mais avançados renderizando na GPU do servidor. Um próximo teste que devo fazer aqui é ver se isso funciona legal pra jogos, heheehe.
Tem uma coisa só que eu apanhei um pouco pra descobrir, então já te deixo a dica: essa máquina Ubuntu que vc quer acessar está na sua rede local? Se estiver na rede local, é muito simples: instala o "Server" nela e depois aponta o(s) "Client"(s) para o IP dela (ou hostname se vc tiver algum DNS configurado aí) e pronto.
Caso a máquina esteja em outro local que não seja acessível diretamente pela sua rede ou internet, digamos que você não consegue nem fazer um ping na máquina que quer acessar pois a máquina está no seu trabalho atrás de um NAT e você está acessando da sua casa, aí tem alguns esquemas que você pode fazer... no meu caso, para acessar minha máquina do trabalho, tenho uma máquina que uso de intermediária para fazer um túnel SSH e configuro meu cliente do Thinlinc para apontar o IP da minha máquina remota. Parece complicado, mas é bem simples:
Fazer um túnel como "ssh -L 22:IP_REMOTO:2222 MEUusuário@PCintermediário.com"
(esse túnel vai apontar a porta 2222 do localhost para a porta 22 da minha máquina IP_REMOTO passando pelo computador que responde por PCintermediário.com). Como você falou em usar um Windows pra acessar o Ubuntu, se vc precisar desse túnel por causa de NAT ou coisa assim, vc pode fazer o túnel com o PuTTY. Tem um tutorial de túnel com PuTTY no Windows aqui -
https://wiki.ime.usp.br/tutoriais:tunel_ssh_windows - no seu caso seria só colocar "Source Port 2222" e "Destination Port seria IP_REMOTO:22" onde manda logo na primeira figura desse tutorial.
Editar o arquivo de configuração do Thinlinc Cliente (no Linux fica em .thinlinc/tlclient.conf, não lembro de cabeça onde fica no Windows, mas segundo a documentação do Thinlinc fica No Registro do Windows: em HKLM (config global) e HKCU (config do usuário logado), depois Software\Cendio\ThinLinc\tlclient). Nesse arquivo (ou registro), na linha HOST_ALIASES= deixo como:
"HOST_ALIASES=IP_REMOTO:22=localhost:2222"
E aí na hora de acessar com o cliente, mando acessar IP_REMOTO (e assim o cliente vai entender que deve desviar esse IP_REMOTO para o meu túnel na porta 2222)
Se você usar algum VPN que te permita acessar direto a máquina, nem precisa disso acima.
Abraços