Como configurar a GUI no servidor Amazon EC2 Ubuntu


136

Estou usando uma instância do Amazon EC2 do Ubuntu que possui apenas uma interface de linha de comando. Quero configurar a interface do usuário para o servidor acessar usando ferramentas de área de trabalho remota. Existe alguma maneira de aplicar a GUI à instância do EC2?


@ user3071284 este artigo é excelente, faltando apenas mais uma etapa - para abrir a porta RDP (3389) nos grupos de segurança da instância.
Noam Manos

1
infelizmente esse link não está disponível agora.
KK2491 04/03/19

A solução para mim foi garantir que o arquivo xstartup fosse executável: chmod + x ~ / .vnc / xstartup
Christopher Broderick

Respostas:


200

Isto pode ser feito. A seguir estão as etapas para configurar a GUI

Criar novo usuário com login com senha

sudo useradd -m awsgui
sudo passwd awsgui
sudo usermod -aG admin awsgui

sudo vim /etc/ssh/sshd_config # edit line "PasswordAuthentication" to yes

sudo /etc/init.d/ssh restart

Configurando a máquina ubuntu baseada em interface do usuário na AWS.

No grupo de segurança, abra a porta 5901. Em seguida, ssh para a instância do servidor. Execute os seguintes comandos para instalar o servidor ui e vnc:

sudo apt-get update
sudo apt-get install ubuntu-desktop
sudo apt-get install vnc4server

Em seguida, execute os seguintes comandos e digite a senha de login para a conexão vnc:

su - awsgui

vncserver

vncserver -kill :1

vim /home/awsgui/.vnc/xstartup

Em seguida, pressione a tecla Inserir, role o arquivo de texto com as setas do teclado e exclua o sinal de cerquilha (#) do início das duas linhas abaixo da linha que diz "Descomente as duas linhas a seguir na área de trabalho normal". E na segunda linha, adicione "sh" para que a linha leia

exec sh /etc/X11/xinit/xinitrc. 

Quando terminar, pressione Ctrl + C no teclado, digite: wq e pressione Enter.

Em seguida, inicie o servidor vnc novamente.

vncserver

Você pode fazer o download xtightvncviewerpara visualizar a área de trabalho (para Ubutnu) aqui https://help.ubuntu.com/community/VNC/Clients

No cliente vnc, forneça DNS público mais ": 1" (por exemplo, www.example.com:1). Digite a senha de login do vnc. Certifique-se de usar uma conexão normal. Não use os arquivos de chave.

Guia adicional disponível aqui: http://www.serverwatch.com/server-tutorials/setting-up-vnc-on-ubuntu-in-the-amazon-ec2-Page-3.html

O cliente Mac VNC pode ser baixado aqui: https://www.realvnc.com/en/connect/download/viewer/

Abertura de porta no console

sudo iptables -A INPUT -p tcp --dport 5901 -j ACEITAR

Se o problema da janela cinza surgir. Principalmente por causa do arquivo ".vnc / xstartup" em diferentes usuários. Portanto, execute o servidor vnc também no mesmo usuário, em vez do usuário "awsgui".

vncserver


13
Eu acho que você está perdendo su - awsguidepois.sudo usermod -aG admin awsgui
Konstantin K

14
Lembre-se de abrir a porta 5901 no seu Grupo de Segurança para que isso funcione. Obrigado pela resposta detalhada!
Daniel Magliola

11
Tentei alguns guias, incluindo este, e só recebo um plano de fundo cinza - nenhum desktop ubuntu.
Chave

5
Eu fiz isso que resolveu o plano de fundo cinza para mim digitalocean.com/community/questions/…
timhc22

8
Tente vim .vnc/xstartupse vim awsgui/.vnc/xstartupnão funcionou #
29615 TomasVeras

76

Então, sigo a primeira resposta, mas meu visualizador de vnc me dá uma tela cinza quando eu me conecto a ele. E eu encontrei este link Ask Ubuntu para resolver isso.

A única diferença com a resposta anterior é que você precisa instalar estes pacotes extras:

apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

E use este arquivo ~ / .vnc / xstartup:

#!/bin/sh

export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

Tudo o resto é igual.

Testado no EC2 Ubuntu 14.04 LTS.


2
Isso funcionou para mim em cima da resposta anterior e com su - awsguifeito antes de executar os comandos vnc.
Vincenzo Pii

1
Esta etapa foi necessária para fazê-lo funcionar depois de seguir a maioria dos tutoriais sobre como configurar a área de trabalho do ubuntu no aws com tightvncserver. Nenhum dos tutoriais funcionou para mim sem esta etapa.
techdog

1
Pode ser necessário reiniciar o sistema operacional depois de seguir estas etapas. Segui esta resposta e preciso reiniciar primeiro.
tno2007

Eu tentei as etapas acima e posso ver o Ubuntu no RealVNC. Mas eu posso ver apenas o terminal e a área de trabalho. De alguma forma, outras partes da interface do usuário, como Barra de Ferramentas, Aplicativos etc. estão ausentes. Existem outras etapas ou alguma correção para isso?
Vinayak

Execute o seguinte no terminal: killall gnome-panel && sudo gnome-panel &
Octocat

17

Para o Ubuntu 16.04

1) Instalar pacotes

$ sudo apt update;sudo apt install --no-install-recommends ubuntu-desktop
$ sudo apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal vnc4server

2) Edite o arquivo / usr / bin / vncserver e modifique como abaixo

Encontre esta linha

"# exec /etc/X11/xinit/xinitrc\n\n".

E adicione estas linhas abaixo.

"gnome-session &\n".
"gnome-panel &\n".
"gnome-settings-daemon &\n".
"metacity &\n".
"nautilus &\n".
"gnome-terminal &\n".

3) Crie senha VNC e sessão vnc para o usuário usando o comando "vncserver".

lonely@ubuntu:~$ vncserver
You will require a password to access your desktops.
Password:
Verify:
xauth: file /home/lonely/.Xauthority does not exist
New 'ubuntu:1 (lonely)' desktop is ubuntu:1
Creating default startup script /home/lonely/.vnc/xstartup
Starting applications specified in /home/lonely/.vnc/xstartup
Log file is /home/lonely/.vnc/ubuntu:1.log

Agora você pode acessar a GUI usando IP / Domínio e porta 1

stackoverflow.com:1

Testado na AWS e no oceano digital.

Para a AWS, você deve permitir a porta 5901 no firewall

Para matar a sessão

$ vncserver -kill :1

Referir:

https://linode.com/docs/applications/remote-desktop/install-vnc-on-ubuntu-16-04/

Consulte este guia para criar sessões permanentes como serviço

http://www.krizna.com/ubuntu/enable-remote-desktop-ubuntu-16-04-vnc/


Funcionou, mas após reiniciar a máquina, o ssh parou de se conectar com o erro de tempo limite da conexão. Você tem alguma idéia de por que isso está acontecendo?
Shan Khan

9

1) Inicie a instância do Ubuntu no EC2.
2) Abra a porta SSH na segurança da instância.
3) Faça SSH para instância.
4) Execute:

sudo apt-get update    sudo apt-get upgrade

5) Como você se conectará a partir da Área de Trabalho Remota do Windows, edite o arquivo sshd_config na sua instância do Linux para permitir a autenticação de senha.

sudo vim /etc/ssh/sshd_config

6) Altere PasswordAuthentication para yes de no e salve e saia.
7) Reinicie o daemon SSH para que essa alteração entre em vigor.

sudo /etc/init.d/ssh restart

8) Adquira temporariamente privilégios de root e altere a senha do usuário do ubuntu para uma senha complexa para aprimorar a segurança. Pressione a tecla Enter depois de digitar o comando passwd ubuntu, e você será solicitado a digitar a nova senha duas vezes.

sudo –i
passwd ubuntu

9) Volte para a conta de usuário do ubuntu e cd para o diretório inicial do ubuntu.

su ubuntu
cd

10) Instale a funcionalidade da área de trabalho Ubuntu na sua instância do Linux; o último comando pode levar até 15 minutos para ser concluído.

export DEBIAN_FRONTEND=noninteractive
sudo -E apt-get update
sudo -E apt-get install -y ubuntu-desktop

11) Instale o xrdp

sudo apt-get install xfce4
sudo apt-get install xfce4 xfce4-goodies

12) Faça do xfce4 o gerenciador de janelas padrão para conexões RDP.

echo xfce4-session > ~/.xsession

13) Copie .xsession para a pasta / etc / skel para que o xfce4 seja definido como o gerenciador de janelas padrão para qualquer nova conta de usuário criada.

sudo cp /home/ubuntu/.xsession /etc/skel

14) Abra o arquivo xrdp.ini para permitir a alteração da porta do host à qual você se conectará.

sudo vim /etc/xrdp/xrdp.ini

(O xrdp não está instalado até agora. Primeiro instale o xrdp com o sudo apt-get install xrdp e depois edite o arquivo mencionado acima)

15) Procure a seção [xrdp1] e altere o texto a seguir (salve e saia [: wq]).

port=-1
- to -
port=ask-1

16) Reinicie o xrdp.

sudo service xrdp restart

17) No Windows, abra o cliente de Conexão de Área de Trabalho Remota, cole o nome completo da sua instância do Amazon EC2 para o Computador e clique em Conectar.

18) Quando solicitado a efetuar login no xrdp, verifique se o módulo sesman-Xvnc está selecionado e digite o nome de usuário ubuntu com a nova senha que você criou na etapa 8. Quando você inicia uma sessão, o número da porta é -1.

19) Quando o sistema se conecta, várias mensagens de status são exibidas na tela Registro de conexão. Preste muita atenção a essas mensagens de status e anote o número da porta VNC exibida. Se você deseja retornar a uma sessão posteriormente, especifique esse número no campo port da caixa de diálogo de login do xrdp.

Veja mais detalhes: https://aws.amazon.com/premiumsupport/knowledge-center/connect-to-linux-desktop-from-windows/
http://c-nergy.be/blog/?p=5305


2
Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
Bhargav Rao

3
Não consigo encontrar a seção [xrdp1] no arquivo xrdp.ini.
Sudhir

3

Para LXDE / Lubuntu


1. conecte-se à sua instância (porta de encaminhamento local 5901)

ssh -L 5901: localhost: 5901 -i "xxx.pem" ubuntu@xxx.amazonaws.com

2. Instale pacotes

sudo apt update && sudo apt upgrade
sudo apt-get install xorg lxde vnc4server lubuntu-desktop

3. Crie /etc/lightdm/lightdm.conf

sudo nano /etc/lightdm/lightdm.conf

4. Copie e cole o seguinte no lightdm.conf e salve

[SeatDefaults]
allow-guest =
sessão de usuário falsa = LXDE
# user-session = Lubuntu

5. setup vncserver (você será solicitado a criar uma senha para o vncserver)

vncserver
sudo echo "lxpanel & / usr / bin / lxsession -s LXDE &" >> ~ / .vnc / xstartup

6. Reinicie sua instância e reconecte

sudo reboot
ssh -L 5901: localhost: 5901 -i "xxx.pem" ubuntu@xxx.amazonaws.com

7. Inicie o vncserver

vncserver -geometry 1280x800

8. No seu Remote Desktop Client (por exemplo, Remmina), defina Server como localhost: 5901 e protocolo como VNC

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.