Hogyan irányítsuk távoli számítógépünket a Chrome Remote Desktop segítségével

botond küldte be 2020. 07. 09., cs – 16:27 időpontban

Tartalom

 

Bevezető

Gyakran merül fel az igény, hogy egy távol lévő számítógépet vezéreljünk egy másik gépről, vagy akár mobiltelefonunkról. A mostani járványhelyzetben különösen jól jön, ha az ember rá tud csatlakozni a másik számítógépre, legyen szó távoktatásról, segítségnyújtásról, vagy akár csak a másik számítógépen történő feladat elvégzéséről.

Ilyenkor a felhasználók többségének a legelterjedtebb TeamViewer alkalmazás jut eszébe. Nem volt ez másképp a saját esetemben sem, így egy jó ideje használtam is az ingyenes változatát az itthoni gépeimen, valamint családtagoknak nyújtottam vele távsegítséget a "karantén" ideje alatt. Azonban pár napja letiltott a rendszer, mondván, hogy üzleti tevékenységet észleltek – gondolom a kapcsolatok össz időtartama lehetett túl sok –, így elő kellene fizetnem valamelyik csomagra. Be is mentem az árak oldalra, hogy megnézzem milyen tarifák vannak, ahol megdöbbenve láttam, hogy a legolcsóbb csomag is évi kb 80 ezer forintba kerül – amit természetesen egy összegben kell fizetni. Itthoni használatra ezt elég borsos árnak találtam, így nem volt mást tennem, gyorsan keresnem kellett egy ingyenes alternatívát.

Feltelepítettem a Chrome Remote Desktop programot, amellyel irányítani szerettem volna a Debian 10-es gépemet a másik asztali gépről, hogy közben a monitoron is lássam pl. a futtatott parancsok kimenetét, amíg a másik gépen dolgozom, ám azt tapasztaltam, hogy a távirányító felületén egy üres asztallal jött be a távirányított Debian gép. Akármit csináltam a távirányítóban, a fizikai gépen látszólag nem történt semmi. Kis utánajárást követően már megtudtam, hogy a Chrome Remote Desktop a Linuxos gépeken alapból egy új munkamenetet indít a meglévő használata helyett. Ez hasznos lehet akkor, ha például valaki dolgozik a gépen, és mellette mi is szeretnénk használni azt, anélkül hogy zavarnánk az előtte ülő felhasználót. Azonban ha a hagyományos értelemben szeretnénk távirányítani a számítógépet, akkor egy kis konfigurációs fájl módosítás után már a megszokott módon irányíthatjuk a gépen az aktuális munkamenetet. Ebben a leírásban – egy kis általános betekintővel tarkítva – elvégezzük ezt a beállítást, ami után normál módon használhatjuk a távoli Linux gépünket is.

Mielőtt tehát nekiesnénk a beállításoknak, kezdjük is az elejéről.

 

 

A program beszerzése és telepítése Debian és Windows gépekre

A Chrome Remote Desktop alkalmazás ingyenes, amely két részből áll: egy Chrome böngésző bővítményből, ami biztosítja a távirányításhoz szükséges felületet, valamint kezeli a Google fiókkal kapcsolatos azonosítási részeket a böngészőn keresztül, és egy szerverprogramból, amit pedig a távirányítandó (gazda) gépre kell feltelepíteni ahhoz, hogy irányítani tudjuk.

Ebben a példában most mindkét részt feltelepítjük ugyanarra a gépre, így később tudjuk irányítani ezt a gépet, valamint ezzel a géppel is fogunk tudni irányítani más gépeket.

A program beszerzéséhez látogassunk el a hivatalos letöltőoldalára:
https://remotedesktop.google.com/access

Chrome bővítmény telepítése

Az oldalra lépve már egyből ki is adja a Chrome bővítmény telepítésének lehetőségét:

Chrome Remote Desktop - Chrome bővítmény telepítése

Itt első használatkor a felső rész üres (nálam már vannak beállított gépek, amik éppen elérhetőek). Kattintsunk a jobb alsó sarokban előugró panelen a Telepítés gombra. Ezután újból rákérdez, hogy biztosan szeretnénk-e telepíteni a böngésző bővítményt, ezt is igazoljuk le.

A bővítmény használata nélkül is működik a távirányítás magából a Chrome böngészőből, de a leírásában ajánlják a használatát, mert nagyobb fokú kompatibilitást biztosít. A bővítmény bármilyen asztali operációs rendszeren működik, amin fut a Chrome böngésző. Android telefonokra külön applikációt kell letölteni, erről majd később.

A kiegészítő telepítése után kapunk egy másik ablakot, ami eltér egy szokványos Chrome böngészőablaktól, de lényegében a Chrome böngésző motorjával működik. A felső ablakkeret jobb oldali részén megjelennek a már telepített bővítményeink is. Az ablak tartalmának felső részén láthatjuk a Google fiókunkat, alatta pedig a távirányítható gépeket (ami elsőre üres), és lejjebb pedig a távoli hozzáférés beállítását:

Chrome Remote Desktop - Chrome bővítmény indítása

Távoli hozzáférés beállítása

Ahhoz, hogy irányítani tudjuk a gépet, fel kell telepíteni a szerverprogramot. Ehhez kattintsunk a panelen lévő letöltő ikonra. A letöltést követően előjön még egy panel, amin el kell fogadnunk a Google Általános Szerződési Feltételeket, valamint az adatvédelmi irányelveket:

Chrome Remote Desktop - Általános Szerződési Feltételek elfogadása

Az elfogadás után elindul a letöltött telepítőprogram, erről ki is ír egy tájékoztató üzenetet:

Chrome Remote Desktop - Telepítés folyamatban

Windows gazda gépeken automatikusan elindul a program telepítése, azonban Linux rendszereken alapból nincs minden disztribúcióban/asztalkörnyezeten beállítva megfelelő programtársítás a .deb telepítőcsomagok futtatásához, ezért kézzel kell telepíteni. Ehhez nyissunk egy terminált, lépjünk a letöltött fájl könyvtárába, majd telepítsük a programot. Nálam például a Debianon:

sudo apt install ~/Letöltések/chrome-remote-desktop_current_amd64.deb

Ekkor telepít kb 83 MB-nyi adatot.

A telepítés végeztével az ablakban egyből érzékeli a szerverprogram meglétét, és bekéri a Gép nevét:

Chrome Remote Desktop - Számítógép nevének beállítása

Itt adjunk meg egy nevet, ami a listánkban szerepelni fog a távirányítható gépek között.

 

 

Ezután meg kell adnunk egy PIN-kódot, amivel hozzá lehet majd férni a Google fiókunkban hozzáadott gépek közül ehhez a géphez:

Chrome Remote Desktop - PIN-kód beállítása

Ha beállítottuk, akkor mehet is az indítás. Az indításra kattintva még bekéri tőlünk a root jelszót. Ezután frissül az ablak, és előjönnek a már beállított irányítható gépek (Távoli gépek), és alul a jelenleg beállított gép (Ez az eszköz):

Chrome Remote Desktop - Gépek listája

 

Első csatlakozás a gazda számítógépre

Ha idáig megvagyunk, akkor nincs más hátra, mint hogy egy másik gépről csatlakozzunk az imént beállított számítógépre. A távirányító gépen ha feltelepítettük a böngésző bővítményt, akkor indítsuk el. Én most egy Windows 10-es gépről csatlakozom fel a fentebb beállított laptopomra. Elindítva tehát a távirányító ablakot:

Chrome Remote Desktop - Indítás

Ezután kattintsunk a fenti listában a távirányítani kívánt gépre.

Az első munkamenet során bekéri a PIN-kódot, amit a szerverprogram gazda gépre történő telepítése során beállítottunk:

Chrome Remote Desktop - Indítás - PIN-kód bekérése

Itt meg is jegyeztethetjük a PIN-kódot, így a következő alkalommal már nem fogja kérni.

Debian/Ubuntu rendszereken az első csatlakozáskor még rákérdez, hogy melyik asztali munkamenetet szeretnénk használni:

Chrome Remote Desktop - Asztali munkamenet kiválasztása

Itt az ember logikusan azt gondolná, hogy az alapértelmezett XSession választása egy alap asztalt eredményez, a második opció pedig felcsatlakozik a meglévő munkamenetre. De, mint írja is a panelen, hogy nem mindegyik munkamenetet támogatja egyidejűleg a Remote Desktop. Lehet hogy éppen az LXQT asztalomat sem támogatja, mert nálam bármelyik beállítást is választottam ki, egy alap asztalt kapok, ahol nincs semmi beállítás:

Chrome Remote Desktop - Alap asztal

A szolgáltatás újraindítása utáni újracsatlakozáskor a másik beállítással is ugyanez lett nálam az eredmény: még a háttérkép sincs beállítva. Egyedül a tálcán lévő dolgokat töltötte be ebben a munkamenetben. Érdekességképpen, az asztali gépemen, amin szintén Debian 10 van LXQT asztallal, annak a háttérképe az első távirányításakor betöltődött.

A számítógép használható távolról, indíthatunk bármit, de az elindított programok grafikus kimenetei csak a távirányított munkameneten jelennek meg, a gép asztalán nem nyílik meg semmi. Így tehát mégsem az igazi, ha nem az aktuális munkamenetre csatlakozik, annak teljes állapotát és miden beállítását átvéve.

Ettől eltérő asztalkörnyezetek esetén más eredményekre is számíthatunk, például néhány beállítás megmarad, attól függően hogy az adott asztalkörnyezet milyen módon tárolja a beállításait, stb.

Windows gazda gépek esetén nincs párhuzamos munkamenet kezelés, ott a meglévő egyetlen munkamenetre csatlakozik rá, tehát ugyanaz látszik a távirányító ablakban is, mint a monitoron.

Debian/Ubuntu rendszerekre is van megoldás, a következő fejezetben beállítjuk a megfelelő munkamenetet a távirányításhoz.

 

 

Azonos asztali munkamenet beállítása Debian/Ubuntu rendszerű gépeken

Alapértelmezetten a Chrome Remote Desktop úgy van beállítva, hogy egy új asztali munkamenetet indítson a Debian/Ubuntu rendszereken. Persze más disztribúciók esetén is hasonló lehet a működés, de most csak ezekkel foglalkozunk. Lényegében emiatt készítettem el ezt a leírást, hogy ezt a problémát megoldjuk, és a távirányító programot valóban távirányításra tudjuk használni a Debian/Ubuntu gazda gépeken is.

A problémát úgy közelíthetjük meg a legjobban, ha a távirányított munkamenetben lekérdezzük a DISPLAY változó értékét:

echo $DISPLAY

Chrome Remote Desktop - DISPLAY változó lekérdezése a távirányított munkamenetben

Nálam ez az érték 20. A probláma tehát innen ered, mert a gépen futó asztali munkamenet azonosítója a 0. Ugyanez lekérdezve a laptopon:

DISPLAY változó lekérdezése asztali terminálból

Tehát erre kellene csatlakoznia a távirányítónak is, és akkor a távirányítóban is a megszokott asztalunkat kapjuk.

Némi utánajárással megtaláltam erre a megoldást. Bár az eredeti leírások Ubuntura készültek, nálam Debianon is bevált (Források lent).

Lépjünk ki a távirányítóból, zárjuk be a távirányító ablakot, és a gazda gépen végezzük a továbbiakat root-ként.

A Chrome Remote Desktop szolgáltatás leállítása

Állítsuk le a Chrome Remote Desktop szolgáltatását:

Ubuntun:

/opt/google/chrome-remote-desktop/chrome-remote-desktop --stop

Debianon:

systemctl stop chrome-remote-desktop

A Chrome Remote Desktop python fájl módosítása

Készítsünk egy biztonsági másolatot a szerkesztendő python fájlról:

cp /opt/google/chrome-remote-desktop/chrome-remote-desktop /opt/google/chrome-remote-desktop/chrome-remote-desktop.orig

Majd nyissuk meg szerkesztése pl. a nano-val:

nano /opt/google/chrome-remote-desktop/chrome-remote-desktop

Ebben pedig végezzük el lépésről lépésre a következőket:

Saját felbontás hozzáadása (opcionális)

Ez a lépés nem kötelező, de hozzáadhatjuk a kliens gépünk felbontását a felsoroláshoz:

DEFAULT_SIZES = "1600x1200,1920x1080,3840x2560"

Első szabad X megjelenítő számának beállítása

Itt kell beállítanunk, hogy a távirányító csatlakozásakor honnantól kezdve adja ki az első X megjelenítő azonosítót. Ez eredetileg 20-ra van állítva, ezért is adta ezt az eredményt a fenti DISPLAY lekérdezés. További csatlakozások a következő szabad megjelenítő-azonosítójú munkamenetre kerülnek csatlakoztatásra. Állítsuk nullára, hogy ki tudja osztani a 0-ás azonosítót, azaz rá tudjon csatlakozni az alapból futó asztalkörnyezetünkre a távirányító:

FIRST_X_DISPLAY_NUMBER = 0

További X megjelenítők keresésének letiltása

Itt pedig kommentezzünk két sort az alábbi zölddel megjelölt módon, hogy ne fusson le a ciklus további X megjelenítők kereséséhez:

  def get_unused_display_number():
    """Return a candidate display number for which there is currently no
    X Server lock file"""
    display = FIRST_X_DISPLAY_NUMBER
#    while os.path.exists(X_LOCK_FILE_TEMPLATE % display):
#      display += 1
    return display

Meglévő X munkamenet újrahasznosíthatósága

Frissítés (2022-08-15):
Újabb verziókban ez a rész már nem így szerepel. Amennyiben nem találjuk ezt a részt, akkor hagyjuk ki. Régebbi verziók esetén végezzük el az alábbi módosítást.

A következő lépésben újrahasználhatóvá tesszük a meglévő X munkamenetet ahelyett, hogy új kerüljön elindításra. Ehhez itt is kommentezzünk ki két sort az alábbi kódrészletből, valamint egészítsük ki a két alsó, zölddel kiemelt sorokkal is:

  def launch_session(self, x_args):
    self._init_child_env()
    self._setup_pulseaudio()
    self._setup_gnubby()
#    self._launch_x_server(x_args)
#    if not self._launch_pre_session():
#      self._launch_x_session()
    display = self.get_unused_display_number()
    self.child_env["DISPLAY"] = ":%d" % display
Itt ügyeljünk a Python nyelv szigorú szintaktikájára! A két újonnan beszúrt sort pontosan 4-4 szóközzel húzzuk be a többi alá. A tabulálás nem megengedett, arra hibát dob a szolgáltatás indításakor.

 

 

A Chrome Remote Desktop szolgáltatás újraindítása

Ha megvagyunk a módosításokkal, indítsuk újra a szolgáltatást:

Ubuntun:

/opt/google/chrome-remote-desktop/chrome-remote-desktop –start

Debianon:

systemctl start chrome-remote-desktop

Csatlakozás a számítógép meglévő asztali munkamenetéhez

Indítsuk el a másik gépen a távirányító ablakot:

Chrome Remote Desktop - Indítás

Majd indítsuk el az imént beállított gépet:

Chrome Remote Desktop - Megfelelő működés a beállított asztali munkameneten

Amint láthatjuk, bejön a teljes asztalunk a háttérel, ikonjainkkal, és rajta a kint hagyott ablakkal. Valamint ha mozgatjuk az egeret, vagy ablakokat, akkor a gépen is látszik minden művelet. Így tehát már teljes értékű távirányítást kapunk ugyanazon az asztali munkameneten.

 

Távirányítás Android telefonról

Ha már átfutottuk az elején az asztali Chrome bővítmény és a gazda alkalmazás telepítését, akkor még érdemes szót ejteni a Chrome Remote Desktop szolgáltatás Androidos alkalmazásáról is, aminek segítségével a telefonunkról is tudjuk irányítani gépeinket. A program használata roppant egyszerű, ezért nem érdemes kihagyni.

Ehhez telepítsük a Google áruházból a Chrome Remote Desktop alkalmazást Androidos mobiltelefonunkon:
https://play.google.com/store/apps/details?id=com.google.chromeremotedesktop

Az alkalmazás indítása után – a Google fiókunkon keresztül – meg is jeleníti a már beállított gépeink listáját:

Chrome Remote Desktop Android - Kezdőképernyő

Ezután válasszuk ki az irányítani kívánt gépet:

Chrome Remote Desktop Android - Csatlakozás - PIN kód megadása

Adjuk meg a PIN kódot, akár meg is jegyeztethetjük a programmal, majd koppintsunk a csatlakozás feliratra.

Chrome Remote Desktop Android - Számítógép távirányítása

És már használhatjuk is a távoli gazdagépet. Ilyen egyszerű tehát a telefonról történő távirányítás.

 

 

Konklúzió

A Chrome Remote Desktop szolgáltatás használata igen egyszerű, viszont amint láthattuk, Linux gépeken igényel némi beavatkozást hogy a meglévő munkamenetre csatlakozhassunk a távirányítás során. Azonban a beállítás elvégzését követően már kényelmesen és egyszerűen irányíthatjuk kedvenc Debian, Ubuntu, stb számítógépeinket is. Windows gépek esetén pedig egyből működik a távirányítás.

Érdemes megjegyezni, hogy azért a TeamViewer gazdagabb funkciótárral rendelkezik, valamint az átküldhető billentyűkombinációk és egérműveletek (pl drag and drop) palettája is szélesebb, de szem előtt kell tartani azt is hogy az egy fizetős szoftver, ráadásul nem is olcsó, aminek az ingyenes "próbaideje" a napi használat során egy idő után lejár – Szemben a Google által teljesen ingyenesen kínált szolgáltatással.