Tartalom
- Bevezető
- A program beszerzése és telepítése Debian és Windows gépekre
- Első csatlakozás a gazda számítógépre
- Azonos asztali munkamenet beállítása Debian/Ubuntu rendszerű gépeken
- Távirányítás Android telefonról
- Konklúzió
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.
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:
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:
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:
Az elfogadás után elindul a letöltött telepítőprogram, erről ki is ír egy tájékoztató üzenetet:
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:
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:
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):
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:
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:
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:
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:
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.
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
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:
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
Ú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
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:
Majd indítsuk el az imént beállított gépet:
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.
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:
Ezután válasszuk ki az irányítani kívánt gépet:
Adjuk meg a PIN kódot, akár meg is jegyeztethetjük a programmal, majd koppintsunk a csatlakozás feliratra.
É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.
- remotedesktop.google.com
- Google Play - Chrome Remote Desktop
- Hogyan oldhatjuk fel manuálisan azokat a maszkolt (service is masked) állapotú szolgáltatásokat, amiket a systemctl parancs unmask opciójával nem tudunk feloldani?
- researchxuyc.wordpress.com - To show the same display session in Ubuntu by Chrome Remote Desktop
- superuser.com - Configuring Chrome Remote Desktop with Ubuntu Gnome 14.04
- support.google.com - Chrome Remote Desktop on Ubuntu only shows wallpaper
- Hogyan küszöbölhetjük ki a "Not authorized to perform operation" hibaüzenetet a pendrive-ok és egyéb külső USB tárolóeszközök automatikus felcsatolásakor
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
- 1384 megtekintés