Przeskocz do opisu głównego

SSH - uruchamianie programów z graficznym interfejsem

· 2 minut czytania
Sławomir Cichy
Backend Engineer @ Sci Software

Aby uruchomić aplikację desktop z graficznym interfejsem na serwerze, do którego łączymy się za pośrednictwem konsoli SSH należy dodać do polecenia ssh argument -Y lub -X (zobacz ssh man).

Przykładowe polecenie:

ssh -Y user@server

Uruchamianie aplikacji za pomnocą poleceń sudo oraz su

Zdarza się, że mamy uprawnienia i musimy uruchamiać daną aplikację jako inny użytkownik (w imieniu innego użytkownika). Nie możemy jednak wykonać operacji komunikacji ssh do serwera jako ten użytkownik, albowiem jest on zablokowany lub posiada inne ograniczenia. Ale możemy wykonać operację sudo lub su. W tej sytuacji uzyskany za pomocą pocecenia xauth list token należy skopiować do listy tokenów danego użytkownika za pomocą polecenia xauth add.

Przykład dla operacji sudo:

ssh -Y slawas@localtest-001
[slawas@localtest-001]$ echo $DISPLAY
localhost:10.0
[slawas@localtest-001 ~]$ xauth list
localtest-001/unix:10 MIT-MAGIC-COOKIE-1 b70bc7a53f229b6a88e47a01c8d26ce4
[slawas@localtest-001 ~]$ sudo xauth add localtest-001/unix:10 MIT-MAGIC-COOKIE-1 b70bc7a53f229b6a88e47a01c8d26ce4
[slawas@localtest-001 ~]$ cd /opt/IBM/install/IM64/
[slawas@localtest-001 IM64]$ sudo ./install
#... działa!

Przykład dla operacji su:

ssh -Y slawas@localtest-001
[slawas@localtest-001]$ echo $DISPLAY
localhost:10.0
[slawas@localtest-001 ~]$ xauth list
localtest-001/unix:10 MIT-MAGIC-COOKIE-1 b70bc7a53f229b6a88e47a01c8d26ce4
[slawas@localtest-001 ~]$ su - bpmadmin
[bpmadmin@localtest-001 ~]$ xauth add localtest-001/unix:10 MIT-MAGIC-COOKIE-1 b70bc7a53f229b6a88e47a01c8d26ce4
[bpmadmin@localtest-001 ~]$ cd /opt/IBM/install/IM64/
[bpmadmin@localtest-001 IM64]$ ./install
#... działa!

Konfiguracja serwera

Aby móc zrealizoawć zadanie uruchomienia aplikacji z graficznym interfejsem na serwerze muszą być również spełnione odpowiednie wymagania.

Wymagane pakiety na serwerze

Przede wszystkim musi być zainstalowany xauth. Sprawdź czy masz zainstalowane i ewentualnie zainstaluj następujące pakiety:

  • libaio (sama biblioteka, bez powiązania z jakimś produktem)
  • gtk2 (GTK+, GIMP Toolkit)
  • libXtst
  • xorg-x11-xauth
  • xorg-x11-fonts-* (opcjonalne)
  • xorg-x11-utils (opcjonalne)

Przykład instalacji pakietów dla systemu operacyjnego CentOS:

sudo yum install libaio gtk2 libXtst xorg-x11-xauth xorg-x11-fonts-* xorg-x11-utils

Konfiguracja serwera SSH

Aby móc realizować zadanie uruchomienia aplikacji z graficznym interfejsem na serwerze należy skonfigurować serwer SSH z odpowiednimi parametrami w pliku /etc/ssh/sshd_config. Zweryfikuj czy masz ustawione parametry:

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes