Jak skonfigurować GUI na serwerze Amazon EC2 Ubuntu

136

Używam instancji Amazon Ubuntu EC2, która ma tylko interfejs wiersza poleceń. Chcę skonfigurować interfejs użytkownika dla tego serwera, aby uzyskać dostęp za pomocą narzędzi pulpitu zdalnego. Czy istnieje sposób na zastosowanie GUI do instancji EC2?

Elizeusz
źródło
@ user3071284 ten artykuł jest świetny, brakuje tylko jednego kroku - otwarcia portu RDP (3389) w grupach zabezpieczeń instancji.
Noam Manos
1
niestety ten link nie jest teraz dostępny.
KK2491,
Rozwiązaniem dla mnie było zapewnienie, że plik xstartup był wykonywalny: chmod + x ~ / .vnc / xstartup
Christopher Broderick

Odpowiedzi:

200

To może być skończone. Poniżej przedstawiono kroki konfiguracji GUI

Utwórz nowego użytkownika za pomocą hasła logowania

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

Konfigurowanie maszyny Ubuntu opartej na interfejsie użytkownika na AWS.

W grupie bezpieczeństwa otwórz port 5901. Następnie ssh do instancji serwera. Uruchom następujące polecenia, aby zainstalować serwer interfejsu użytkownika i vnc:

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

Następnie uruchom następujące polecenia i wprowadź hasło logowania do połączenia vnc:

su - awsgui

vncserver

vncserver -kill :1

vim /home/awsgui/.vnc/xstartup

Następnie naciśnij klawisz Insert, przewiń plik tekstowy za pomocą strzałek na klawiaturze i usuń znak krzyżyka (#) z początku dwóch wierszy pod linią z napisem „Odkomentuj następujące dwie linie w przypadku normalnego pulpitu”. A w drugiej linii dodaj „sh”, aby wiersz brzmiał

exec sh /etc/X11/xinit/xinitrc. 

Kiedy skończysz, naciśnij Ctrl + C na klawiaturze, wpisz: wq i naciśnij Enter.

Następnie ponownie uruchom serwer vnc.

vncserver

Możesz pobrać, xtightvncvieweraby wyświetlić pulpit (dla Ubutnu) tutaj https://help.ubuntu.com/community/VNC/Clients

W kliencie vnc podaj publiczny DNS plus „: 1” (np. Www.example.com:1). Wprowadź hasło logowania vnc. Upewnij się, że używasz normalnego połączenia. Nie używaj plików kluczy.

Dodatkowy przewodnik dostępny tutaj: http://www.serverwatch.com/server-tutorials/setting-up-vnc-on-ubuntu-in-the-amazon-ec2-Page-3.html

Klienta Mac VNC można pobrać tutaj: https://www.realvnc.com/en/connect/download/viewer/

Otwór portu na konsoli

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

Jeśli pojawi się problem z szarym oknem. Głównie z powodu pliku „.vnc / xstartup” na innym użytkowniku. Więc uruchom serwer vnc również dla tego samego użytkownika zamiast użytkownika „awsgui”.

vncserver

sugunan
źródło
13
Myślę, że tęsknisz su - awsguiposudo usermod -aG admin awsgui
Konstantin K
14
Pamiętaj, aby otworzyć port 5901 w swojej grupie zabezpieczeń, aby to zadziałało. Dzięki za szczegółową odpowiedź!
Daniel Magliola,
11
Wypróbowałem kilka przewodników, w tym ten, i mam tylko szare tło - bez pulpitu Ubuntu.
Wrench
5
Zrobiłem to, który rozwiązał szare tło dla mnie digitalocean.com/community/questions/...
timhc22
8
Spróbuj, vim .vnc/xstartupjeśli vim awsgui/.vnc/xstartupnie zadziałało
TomasVeras
76

Więc postępuję zgodnie z pierwszą odpowiedzią, ale moja przeglądarka vnc wyświetla szary ekran, gdy się z nią łączę. I znalazłem ten link Zapytaj Ubuntu, aby to rozwiązać.

Jedyna różnica w stosunku do poprzedniej odpowiedzi polega na tym, że musisz zainstalować te dodatkowe pakiety:

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

I użyj tego pliku ~ / .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 &

Cała reszta jest taka sama.

Przetestowano na EC2 Ubuntu 14.04 LTS.

yuchien
źródło
2
To zadziałało dla mnie na tle poprzedniej odpowiedzi i su - awsguiwykonano przed uruchomieniem poleceń vnc.
Vincenzo Pii
1
Ten krok był konieczny, aby działał po wykonaniu większości samouczków dotyczących konfiguracji pulpitu Ubuntu na aws z tightvncserver. Żaden z tutoriali nie działał dla mnie bez tego kroku.
techdog
1
Po wykonaniu tych czynności może być konieczne ponowne uruchomienie systemu operacyjnego. Postępowałem zgodnie z tą odpowiedzią i najpierw muszę ponownie uruchomić komputer.
tno2007
Wypróbowałem powyższe kroki i widzę Ubuntu na RealVNC. Ale widzę tylko terminal i pulpit. W jakiś sposób brakuje innych części interfejsu użytkownika, takich jak pasek narzędzi, aplikacje itp. Czy są jakieś inne kroki lub rozwiązanie tego problemu?
Vinayak
Uruchom następujące polecenie w terminalu: killall gnome-panel && sudo gnome-panel &
Octocat
17

W przypadku Ubuntu 16.04

1) Zainstaluj pakiety

$ 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) Edytuj plik / usr / bin / vncserver i zmodyfikuj jak poniżej

Znajdź tę linię

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

I dodaj te linie poniżej.

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

3) Utwórz hasło VNC i sesję vnc dla użytkownika za pomocą polecenia „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

Teraz możesz uzyskać dostęp do GUI za pomocą adresu IP / domeny i portu 1

stackoverflow.com:1

Przetestowano na AWS i cyfrowym oceanie.

W przypadku AWS musisz zezwolić na port 5901 na zaporze

Zabić sesję

$ vncserver -kill :1

Odnosić się:

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

Zapoznaj się z tym przewodnikiem, aby utworzyć stałe sesje jako usługę

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

Quake231
źródło
Zadziałało, ale po ponownym uruchomieniu komputera ssh przestał się łączyć z błędem przekroczenia czasu połączenia. Czy masz pojęcie, dlaczego to się dzieje?
Shan Khan
9

1) Uruchom instancję Ubuntu na EC2.
2) Otwórz port SSH w zabezpieczeniach instancji.
3) Wykonaj SSH do instancji.
4) Wykonaj:

sudo apt-get update    sudo apt-get upgrade

5) Ponieważ będziesz łączyć się z pulpitu zdalnego systemu Windows, edytuj plik sshd_config w instancji systemu Linux, aby umożliwić uwierzytelnianie hasłem.

sudo vim /etc/ssh/sshd_config

6) Zmień PasswordAuthentication na tak z nie, a następnie zapisz i zakończ.
7) Uruchom ponownie demona SSH, aby ta zmiana zaczęła obowiązywać.

sudo /etc/init.d/ssh restart

8) Tymczasowo uzyskaj uprawnienia roota i zmień hasło użytkownika Ubuntu na złożone hasło, aby zwiększyć bezpieczeństwo. Naciśnij klawisz Enter po wpisaniu polecenia passwd ubuntu, a zostaniesz poproszony o dwukrotne wprowadzenie nowego hasła.

sudo –i
passwd ubuntu

9) Wróć do konta użytkownika ubuntu i przejdź do katalogu domowego ubuntu.

su ubuntu
cd

10) Zainstaluj funkcjonalność pulpitu Ubuntu na swojej instancji Linuksa, wykonanie ostatniego polecenia może zająć do 15 minut.

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

11) Zainstaluj xrdp

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

12) Ustaw xfce4 jako domyślny menedżer okien dla połączeń RDP.

echo xfce4-session > ~/.xsession

13) Skopiuj plik .xsession do folderu / etc / skel, aby xfce4 był domyślnym menedżerem okien dla wszystkich nowo tworzonych kont użytkowników.

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

14) Otwórz plik xrdp.ini, aby umożliwić zmianę portu hosta, z którym będziesz się łączyć.

sudo vim /etc/xrdp/xrdp.ini

(xrdp nie jest do tej pory instalowany. Najpierw zainstaluj xrdp za pomocą sudo apt-get install xrdp, a następnie edytuj powyższy plik)

15) Poszukaj sekcji [xrdp1] i zmień następujący tekst (następnie zapisz i wyjdź [: wq]).

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

16) Uruchom ponownie xrdp.

sudo service xrdp restart

17) W systemie Windows otwórz klienta Podłączanie pulpitu zdalnego, wklej w pełni kwalifikowaną nazwę wystąpienia Amazon EC2 dla komputera, a następnie kliknij Połącz.

18) Po wyświetleniu monitu o zalogowanie się do xrdp upewnij się, że wybrany jest moduł sesman-Xvnc, i wprowadź nazwę użytkownika ubuntu z nowym hasłem utworzonym w kroku 8. Podczas uruchamiania sesji numer portu to -1.

19) Gdy system się łączy, na ekranie dziennika połączeń wyświetlanych jest kilka komunikatów o stanie. Zwróć szczególną uwagę na te komunikaty o stanie i zanotuj wyświetlany numer portu VNC. Jeśli chcesz wrócić do sesji później, podaj ten numer w polu portu okna dialogowego logowania xrdp.

Zobacz więcej szczegółów: https://aws.amazon.com/premiumsupport/knowledge-center/connect-to-linux-desktop-from-windows/
http://c-nergy.be/blog/?p=5305

akshay hundia
źródło
2
Chociaż może to teoretycznie odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj zasadnicze części odpowiedzi i podać link do odniesienia.
Bhargav Rao
3
Nie mogę znaleźć sekcji [xrdp1] w pliku xrdp.ini.
Sudhir,
3

Dla LXDE / Lubuntu


1. połącz się ze swoją instancją (lokalny port przekazywania 5901)

ssh -L 5901: localhost: 5901 -i "xxx.pem" [email protected]

2. Zainstaluj pakiety

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

3. Utwórz /etc/lightdm/lightdm.conf

sudo nano /etc/lightdm/lightdm.conf

4. Skopiuj i wklej następujące elementy do lightdm.conf i zapisz

[SeatDefaults]
allow-guest = false
user-session = LXDE
# user-session = Lubuntu

5. Skonfiguruj serwer vncserver (zostaniesz poproszony o utworzenie hasła dla serwera vncs)

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

6. Uruchom ponownie instancję i połącz się ponownie

sudo reboot
ssh -L 5901: localhost: 5901 -i "xxx.pem" [email protected]

7. Uruchom vncserver

vncserver -geometry 1280x800

8. W kliencie zdalnego pulpitu (np. Remmina) ustaw Serwer na localhost: 5901 i protokół na VNC

Arash Joorabchi
źródło