Cómo configurar la GUI en el servidor Ubuntu Amazon EC2


136

Estoy usando una instancia amazon Ubuntu EC2 que solo tiene una interfaz de línea de comandos. Quiero configurar la interfaz de usuario para que ese servidor acceda usando herramientas de escritorio remoto. ¿Hay alguna forma de aplicar GUI a la instancia EC2?


@ user3071284 este artículo es excelente, solo falta un paso más: abrir el puerto RDP (3389) en los grupos de seguridad de su instancia.
Noam Manos

1
desafortunadamente ese enlace no está disponible ahora.
KK2491

La solución para mí fue asegurarme de que el archivo xstartup fuera ejecutable: chmod + x ~ / .vnc / xstartup
Christopher Broderick

Respuestas:


200

Esto puede hacerse. Los siguientes son los pasos para configurar la GUI

Crear nuevo usuario con contraseña de inicio de sesión

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

Configuración de la máquina ubuntu basada en ui en AWS.

En el grupo de seguridad, abra el puerto 5901. Luego ssh a la instancia del servidor. Ejecute los siguientes comandos para instalar el servidor ui y vnc:

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

Luego ejecute los siguientes comandos e ingrese la contraseña de inicio de sesión para la conexión vnc:

su - awsgui

vncserver

vncserver -kill :1

vim /home/awsgui/.vnc/xstartup

Luego presione la tecla Insertar, desplácese por el archivo de texto con las flechas del teclado y elimine el signo de número (#) desde el principio de las dos líneas debajo de la línea que dice "Descomente las dos líneas siguientes para el escritorio normal". Y en la segunda línea agregue "sh" para que la línea lea

exec sh /etc/X11/xinit/xinitrc. 

Cuando haya terminado, presione Ctrl + C en el teclado, escriba: wq y presione Entrar.

Luego inicie el servidor vnc nuevamente.

vncserver

Puede descargar xtightvncviewerpara ver el escritorio (para Ubutnu) desde aquí https://help.ubuntu.com/community/VNC/Clients

En el cliente vnc, proporcione DNS público más ": 1" (por ejemplo, www.example.com:1). Ingrese la contraseña de inicio de sesión de vnc. Asegúrese de usar una conexión normal. No uses los archivos clave.

Guía adicional disponible aquí: http://www.serverwatch.com/server-tutorials/setting-up-vnc-on-ubuntu-in-the-amazon-ec2-Page-3.html

El cliente Mac VNC se puede descargar desde aquí: https://www.realvnc.com/en/connect/download/viewer/

Apertura de puerto en consola

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

Si surge el problema de la ventana gris. Principalmente debido al archivo ".vnc / xstartup" en diferentes usuarios. Así que ejecute el servidor vnc también en el mismo usuario en lugar del usuario "awsgui".

vncserver


13
Creo que te estás perdiendo su - awsguidespuéssudo usermod -aG admin awsgui
Konstantin K

14
Recuerde abrir el puerto 5901 en su grupo de seguridad para que esto funcione. ¡Gracias por la respuesta detallada!
Daniel Magliola

11
Intenté un par de guías, incluida esta, y solo obtengo un fondo gris, no hay escritorio de ubuntu.
Llave del

55
Hice esto que resolvió el fondo gris para mí digitalocean.com/community/questions/…
timhc22

8
Probar vim .vnc/xstartupsi vim awsgui/.vnc/xstartupno funcionó
TomasVeras

76

Entonces sigo la primera respuesta, pero mi visor vnc me da una pantalla gris cuando me conecto. Y encontré este enlace Ask Ubuntu para resolver eso.

La única diferencia con la respuesta anterior es que necesita instalar estos paquetes adicionales:

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

Y use este archivo ~ / .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 &

Todo lo demás es lo mismo.

Probado en EC2 Ubuntu 14.04 LTS.


2
Esto funcionó para mí además de la respuesta anterior y con su - awsguihecho antes de ejecutar los comandos vnc.
Vincenzo Pii

1
Este paso fue necesario para que funcione después de seguir la mayoría de los tutoriales sobre cómo configurar el escritorio de ubuntu en aws con tightvncserver. Ninguno de los tutoriales funcionó para mí sin este paso.
techdog

1
Es posible que deba reiniciar su sistema operativo después de seguir estos pasos. Seguí esta respuesta y tengo que reiniciar primero.
tno2007

Intenté los pasos anteriores y puedo ver Ubuntu en RealVNC. Pero solo puedo ver el terminal y el escritorio. De alguna manera faltan otras partes de la interfaz de usuario como la barra de herramientas, aplicaciones, etc. ¿Hay otros pasos o hay alguna solución para esto?
Vinayak

Ejecute lo siguiente en la terminal: killall gnome-panel && sudo gnome-panel &
Octocat

17

Para Ubuntu 16.04

1) Instalar paquetes

$ 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 el archivo / usr / bin / vncserver y modifique de la siguiente manera

Encuentra esta línea

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

Y agregue estas líneas a continuación.

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

3) Cree la contraseña de VNC y la sesión de vnc para el usuario utilizando el 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

Ahora puede acceder a la GUI usando IP / Dominio y el puerto 1

stackoverflow.com:1

Probado en AWS y océano digital.

Para AWS, debe permitir el puerto 5901 en el firewall

Matar sesión

$ vncserver -kill :1

Referir:

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

Consulte esta guía para crear sesiones permanentes como servicio

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


Funcionó, pero después de reiniciar la máquina, ssh dejó de conectarse con un error de tiempo de espera de conexión. ¿Tienes alguna idea de por qué está sucediendo?
Shan Khan

9

1) Inicie la instancia de Ubuntu en EC2.
2) Abra el puerto SSH en seguridad de instancia.
3) Hacer SSH a instancia.
4) Ejecutar:

sudo apt-get update    sudo apt-get upgrade

5) Debido a que se conectará desde el Escritorio remoto de Windows, edite el archivo sshd_config en su instancia de Linux para permitir la autenticación de contraseña.

sudo vim /etc/ssh/sshd_config

6) Cambie PasswordAuthentication a yes de no, luego guarde y salga.
7) Reinicie el demonio SSH para que este cambio surta efecto.

sudo /etc/init.d/ssh restart

8) Obtenga temporalmente privilegios de root y cambie la contraseña para el usuario de ubuntu a una contraseña compleja para mejorar la seguridad. Presione la tecla Intro después de escribir el comando passwd ubuntu, y se le pedirá que ingrese la nueva contraseña dos veces.

sudo –i
passwd ubuntu

9) Vuelva a la cuenta de usuario de ubuntu y cd al directorio de inicio de ubuntu.

su ubuntu
cd

10) Instale la funcionalidad de escritorio de Ubuntu en su instancia de Linux, el último comando puede tardar hasta 15 minutos en completarse.

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

11) Instalar xrdp

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

12) Haga que xfce4 sea el administrador de ventanas predeterminado para las conexiones RDP.

echo xfce4-session > ~/.xsession

13) Copie .xsession en la carpeta / etc / skel para que xfce4 se configure como el administrador de ventanas predeterminado para cualquier nueva cuenta de usuario que se cree.

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

14) Abra el archivo xrdp.ini para permitir el cambio del puerto host al que se conectará.

sudo vim /etc/xrdp/xrdp.ini

(xrdp no está instalado hasta ahora. Primero instale xrdp con sudo apt-get install xrdp y luego edite el archivo mencionado anteriormente)

15) Busque la sección [xrdp1] y cambie el siguiente texto (luego guarde y salga [: wq]).

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

16) Reiniciar xrdp.

sudo service xrdp restart

17) En Windows, abra el cliente Remote Desktop Connection, pegue el nombre completo de su instancia de Amazon EC2 para la computadora y luego haga clic en Conectar.

18) Cuando se le solicite iniciar sesión en xrdp, asegúrese de que el módulo sesman-Xvnc esté seleccionado e ingrese el nombre de usuario ubuntu con la nueva contraseña que creó en el paso 8. Cuando inicie una sesión, el número de puerto es -1.

19) Cuando el sistema se conecta, se muestran varios mensajes de estado en la pantalla Registro de conexión. Preste mucha atención a estos mensajes de estado y tome nota del número de puerto VNC que se muestra. Si desea volver a una sesión más tarde, especifique este número en el campo de puerto del cuadro de diálogo de inicio de sesión xrdp.

Ver más detalles: https://aws.amazon.com/premiumsupport/knowledge-center/connect-to-linux-desktop-from-windows/
http://c-nergy.be/blog/?p=5305


2
Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Bhargav Rao

3
No puedo encontrar la sección [xrdp1] en el archivo xrdp.ini.
Sudhir

3

Para LXDE / Lubuntu


1. conéctese a su instancia (puerto de reenvío local 5901)

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

2. Instalar paquetes

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

3. Cree /etc/lightdm/lightdm.conf

sudo nano /etc/lightdm/lightdm.conf

4. Copie y pegue lo siguiente en lightdm.conf y guarde

[Valores predeterminados del asiento]
allow-guest = false
user-session = LXDE
# user-session = Lubuntu

5. configure vncserver (se le pedirá que cree una contraseña para el vncserver)

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

6. Reinicie su instancia y vuelva a conectar

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

7. Inicie vncserver

vncserver -geometry 1280x800

8. En su Cliente de escritorio remoto (por ejemplo, Remmina) configure el Servidor en localhost: 5901 y el protocolo en VNC

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.