OpCode.eu.org

Blog O autorze O serwisie
2021-07-24

Zdalny pulpit z VNC

Możliwość zdalnego uruchomienia aplikacji, która będzie wyświetlana na naszym lokalnym ekranie (z użyciem ssh -X), czy też możliwość zdalnego uruchomienia graficznej aplikacji na zdalnym X serwerze bez możliwości interakcji z nią (zwykłe ssh i ustawienie zmiennej DISPLAY), nie zawsze jest wystarczające.

Jeżeli potrzebujemy przejąć kontrolę nad zdalnym X serwerem można do tego wykorzystać x11vnc – po stronie zdalnej uruchamiamy (np. poprzez ssh):

x11vnc -passwd TAJNE_HASLO -forever --display :0

a po stronie lokalnej łączymy się standardowym klientem VNC:

vncviewer HOST:5900

gdzie HOST to adres maszyny na której uruchomiliśmy x11vnc, a 5900 to numer portu na którym słucha x11vnc (znajduje się w informacjach wyświetlanych po uruchomieniu polecenia x11vnc i może mieć inną wartość niż podana w przykładzie).

Przykład pokazuje podłączenie się do ekranu :0 (co odpowiada w większości przypadków domyślnej sesji X serwera). Jeżeli chcemy podłączyć się do innego ekranu podajemy odpowiedni inentyfikator w opcji --display.

udostępnianie klawiatury i myszy przez sieć

Nie zawsze będziemy potrzebowali pełnej sesji VNC, w części przypadków (gdy widzimy ekran strony zdalnej) wystarczy nam możliwość jedynie udostępnienia klawiatury i myszy poprzez sieć – możemy wtedy skorzystać z programu barrier.

więcej VNC

Oczywiście VNC nie ogranicza się tylko do możliwości podłączenia do działającego X serwera – możliwe jest też tworzenie X serwera dedykowanego połączeniu VNC. W tym celu należy uruchomić serwer VNC:

vncserver -geometry 1024x768 -depth 24 -SecurityTypes None

podłączenie się do niego (vncviewer -SecurityTypes None localhost:5901) spowoduje uzyskanie (nowej) sesji X serwera.

Uwagi:

  1. pokazana konfiguracja uruchamia VNC bez hasła (opcja -SecurityTypes None), co w pewnych sytuacjach może być niebezpieczne
  2. podobnie jak w przypadku x11vnc 5901 jest numerem portu na którym słucha serwer VNC i jest on podawany w komunikatach wyświetlanych po uruchomieniu serwera (jeżeli nie jest podany jawnie a jako :X to numer portu wynosi: 5900 + X)
  3. serwer VNC możemy wyłączyć wysyłając do niego sygnał przy pomocy kill lub używając polecenia vncserver -kill :X, gdzie X to numer serwera (podany po jego uruchomieniu lub obliczony jako X = numer_portu - 5900)

dodatkowe informacje – autoryzacja X serwera

Niekiedy może zajść też potrzeba uprawnienia np. innego użytkownika do wyświetlenia czegoś na XC serwerze należącym do nas. Możliwe jest to dzięki narzędziom xhost i/lub xauth. Na przykład: xhost +local: zezwala wszystkim procesom używającym lokalnych (nie sieciowych) połączeń na dostęp do naszego X serwera (co jest wygodne gdy na komputerze do którego dostęp mamy tylko my, odpalamy jakiś program z interfejsem graficznym na prawach innego użytkownika).

Więcej na temat tych poleceń można przeczytać w Xauth i xhost na straży bezpieczeństwa Xserver'a.

Tagi: debian storage