Cum să faci un desktop linux la distanță. Acces grafic de la distanță la ubuntu prin VNC. E timpul să fii real

Când încercam să accesez un desktop la distanță prin VNC în Linux Mint 19, a trebuit să mă confrunt cu faptul că, în comparație cu versiunile anterioare (17, 18), această opțiune nu este furnizată implicit. Cu pași suplimentari pentru organizarea capacității de conectare prin VNC la un nod care rulează Linux Mint 19, necesitatea de a depune o serie de eforturi suplimentare a început să semene cu un episod dintr-un film:

– Ar trebui să te termin imediat sau vrei să suferi?
„Este mai bine, desigur, să suferi.”
(din filmul „Soarele alb al deșertului”)

Totul a început cu faptul că în setările (denumite în continuare mediul grafic XFCE) din secțiunea „Sesiuni și pornire” și fila „Autostart” nu se menționează conectarea la un desktop la distanță, deși în Linux-ul precedent. Mint 18 punctul de activare a fost situat între actualizarea folderelor de utilizator și rețea.



Pachetul vino este responsabil pentru implementarea serverului VNC în Linux Mint, care nu este instalat implicit în Linux Mint 19. Acest pachet trebuie instalat și, în principiu, poate fi găsit ușor prin Synaptic.



Cu toate acestea, acest lucru nu va fi suficient. După cum a arătat studiul problemei, dezvoltatorii vino au eliminat utilitarul de configurare grafică din produsul lor, așa că vino va trebui configurat prin configuratorul dconf-editor.

Rulați o comandă în terminal care va instala componentele necesare și va lansa dconf-editor

Sudo apt install -y vino dconf-editor && sudo dconf-editor

Când rulați dconf-editor, va fi afișat un avertisment că modificările pe care le faceți sunt făcute pe propriul risc și pentru a continua, trebuie să faceți clic pe butonul „Voi fi atent”. Pentru a opri acest afișaj la rulările ulterioare ale dconf -editor, debifați bifați caseta „Afișați acest dialog data viitoare”.


După lansarea configuratorului de sistem grafic, prin mutarea secvenţială „gnome – desktop”, mergeţi la secţiunea „acces la distanţă”




Dacă intenționați să vă conectați printr-un client VNC din Windows, atunci, după cum se spune, este recomandabil să dezactivați criptarea (mutați glisorul în linia corespunzătoare).




În ciuda faptului că acesta, după cum se spune, nu este un „buzz”, ci într-o rețea locală în care aveți încredere, această acțiune este acceptabilă.

Faceți același lucru cu prompt-activat, altfel celălalt computer va trebui să „aprobe” conexiunea la distanță la acesta de fiecare dată.


Pentru orice protecție, setați o parolă pentru conexiune dezactivând setarea implicită și introducând parola pe care ați creat-o, de exemplu:




Pentru a asigura această modificare, faceți clic pe butonul verde.


Închideți configuratorul și accesați setările de rulare automată. Adăugați software-ul vino la lista de programe lansate automat la pornirea sistemului

/usr/lib/vino/vino-server



Cifra este pentru shell-ul XFCE. În Cinnamon și MATE, utilizați setările existente de pornire a programului.

Reporniți sistemul.

Pe computerul de la care vă veți conecta, creați o conexiune adecvată. În figura de mai jos, conexiunea se va face dintr-un nod Linux, deci este adăugată în programul Remmina.


Vă rugăm să rețineți că nu trebuie să introduceți un nume de utilizator, ci doar parola care a fost specificată la configurarea vino prin configuratorul grafic dconf-editor.

Figura prezintă nodul H-4.vot, care corespunde numelui de domeniu complet calificat al nodului. În acest caz, se presupune că serverul DNS al rețelei dvs. locale poate potrivi adresele IP emise de DHCP cu numele gazdelor rețelei. MikroTik, de exemplu, poate face acest lucru prin . Dacă nu există un server DNS sau nu știe cum să facă acest lucru, atunci atribuiți o adresă statică gazdei la care vă veți conecta de la distanță (sau configurați serverul DHCP pentru a-i da aceeași adresă) și conectați-vă prin IP.

Dacă totul este făcut corect, vei avea plăcerea de a vizualiza desktopul de la distanță al gazdei Linux la care te-ai conectat, precum și de a gestiona acest computer.


În acest caz, pe panou va fi afișată o pictogramă (de obicei în partea de jos) (cu tema de design Mint-Y - albastru), indicând faptul că există o conexiune de la distanță la desktop.


Viteza de răspuns a computerului de la distanță la comenzile dvs. depinde de capacitățile hardware ale acestuia, de gradul de încărcare a sistemului și de cantitatea de date transferate prin VNC. Când se ia în considerare problema „responsibilității” unui sistem la distanță, multe publicații scriu despre VNC ca fiind inferior RDP, dar eu personal nu am reușit să dau peste ceva mai bun pentru conectarea de la distanță la Linux cu o interfață grafică. Pentru a crește viteza de răspuns a sistemului țintă, puteți încerca să „jucați” cu setările de calitate a afișajului ecranului computerului țintă în parametrii de conexiune (consultați fereastra de setări de conexiune Remmina):


O soluție alternativă este x11vnc().

" și la scurt timp după aceea mi s-a cerut să spun cum să fac același lucru, dar invers - de la Windows la Linux. La prima vedere poate părea că sarcina nu este ușoară, dar, de fapt, este foarte ușoară.

Cititorii ar putea avea o întrebare - de ce este chiar necesar acest lucru? Răspunsul este simplu – pentru a avea un singur punct de administrare. La urma urmei, cât timp se petrece de obicei rulând între computere în încercarea de a rezolva o problemă! Știți deja cum să vă conectați la computere care rulează Windows din Linux și, după ce ați citit acest articol, vă veți putea conecta invers - de la Windows la Linux, iar acest lucru vă va facilita foarte mult sarcina de a administra o rețea locală. Asadar, haideti sa începem.

Ipoteze

În articolul meu, presupun că rețeaua locală are deja computere care funcționează corect. Pentru a ușura lucrurile, voi folosi schema 192.168.1.x. În acest caz, este mult mai convenabil să folosiți adrese IP statice, altfel va trebui să petreceți timp suplimentar pentru a afla adresa computerului dorit.

Software

Ai nevoie doar de două aplicații:

Pe un computer care rulează Linux pentru utilizare ca server VNC;
pe un computer Windows pentru utilizare ca client VNC.

Instalarea TightVNC este foarte ușoară - doar descărcați programul de instalare și faceți dublu clic pe el pentru a rula. Dar procesul de instalare a aplicațiilor pe Linux nu este atât de evident pentru mulți utilizatori de Windows.

Desigur, totul depinde de ce distribuție Linux aveți. Dar, în termeni generali, succesiunea acțiunilor este următoarea:

1. Rulați instrumentul de instalare/eliminare a programului - Synaptic, Ubuntu Software Center, gnome-packagekit etc.
2. Tastați „x11vnc” (fără ghilimele) în bara de căutare.
3. Verificați pachetele de instalat.
4. Faceți clic pe butonul Aplicare pentru a începe instalarea.

Cei care sunt obișnuiți să lucreze din linia de comandă pot instala aplicația după cum urmează:

1. Deschideți un terminal.
2. Rulați o comandă precum sudo apt-get install x11vnc - în funcție de distribuția pe care o aveți.

După finalizarea instalării, puteți începe conectarea.

Pe un computer care rulează Linux

Totul este destul de simplu aici - trebuie doar să porniți serverul x11vnc. În ajutorul acestui utilitar, care poate fi apelat cu comanda omul x11vnc, este furnizată o listă de opțiuni disponibile. Aș recomanda utilizarea opțiunii -pentru totdeauna- fără el, serverul se va închide imediat după încheierea sesiunii client. Deci comanda care urmează să fie executată în terminal ar trebui să arate astfel:

X11vnc -pentru totdeauna

Următorul prompt de comandă nu va apărea după aceasta, chiar dacă utilizați caracterul &. Prin urmare, merită să adăugați linia x11vnc -forever la sfârșitul fișierului " /etc/rc.local„astfel încât serverul să pornească de fiecare dată când sistemul pornește.

Pe un computer Windows

Acum să facem legătura. Lansați utilitarul TightVNC instalat pe Windows din meniul Start. Imaginea prezentată în Fig. O fereastră în care trebuie să specificați adresa pentru conectare. De aici puteți apela caseta de dialog Opțiuni.

Figura A: Selectați profilul de conexiune care se potrivește cel mai bine tipului dvs. de conexiune.

Există o serie de opțiuni disponibile în fereastra de setări (Figura B), dar dacă nu aveți nevoie de nicio configurație specială, puteți lăsa valorile implicite.


Figura B. TightVNC poate fi conectat în modul View - atunci sesiunea nu va fi interactivă. Aceasta este o opțiune bună pentru o conexiune de testare.

După ce ați configurat toate setările, faceți clic pe butonul Conectare pentru a vă conecta la desktopul de la distanță (Figura C). Viteza conexiunii depinde de lățimea de bandă a rețelei, dar în general TightVNC este o soluție foarte viabilă.

Conectarea de la distanță la un desktop Linux din Windows folosind Xming și SSH

Spre deosebire de Windows, în Linux shell-ul grafic nu face parte din nucleul sistemului. Sistemul de ferestre standard pentru Linux este X Window System sau, pur și simplu, X. Se ocupă de redarea elementelor grafice și de interacțiunea cu dispozitivele de intrare/ieșire. Și cea mai bună parte este că acest sistem are o arhitectură client-server transparentă. Sistemul de ferestre acționează ca un server, iar aplicațiile grafice acționează ca clienți. Așa cum ar trebui clienții, se conectează la server și interacționează cu acesta pentru a reda și a primi evenimente de mouse și tastatură.

Dar asta nu este tot! Faptul este că sistemul de ferestre poate fi localizat pe un alt computer, iar aplicația grafică poate comunica cu acesta prin intermediul rețelei. În acest fel, puteți rula aplicația pe un computer la distanță, forțând să fie desenată pe computerul la care lucrați în prezent. Sau vice versa. Sau rulați programul pe un computer la distanță și desenați interfața pe un alt computer la distanță.

1.Client SSH. Am instalat PuTTY.

2.X Server pentru Windows. Am ales Xming.

Mai întâi, să stabilim o conexiune SSH cu un computer la distanță. Pentru a face acest lucru, lansați PuTTY. Introduceți adresa IP a computerului Linux

Acum mergeți la secțiunea Conexiune / SSH / X11 și activați redirecționarea GUI. Ca locație a serverului X, introduceți adresa IP a computerului Windows pe care îl folosim în prezent (aceasta va fi cel mai probabil 127.0.0.1)

În plus, pentru ca crocodilul să nu apară în locul literelor rusești, este indicat să setați codificarea corectă în secțiunea Fereastră / Traducere (eu am UTF8 - codificarea standard pe Debian și Ubuntu). Revenim la secțiunea Sesiune, salvăm setările și ne conectăm la computerul Linux. Dacă conexiunea are succes, introducem numele de utilizator și parola și vedem o consolă text. Cu ajutorul acestuia, putem lansa de la distanță programe de consolă, dar programele grafice nu pot fi desenate în consolă. Prin urmare, ne vom lăsa conexiunea prin SSH pentru o perioadă.

Acum să configuram Xming. Pentru a face acest lucru, lansați programul XLaunch - acesta este un expert de setări. În primul pas, indicăm metoda de integrare în mediul grafic Windows. O prefer pe prima, unde fiecare aplicație Linux este în fereastra ei.

În al doilea pas, ni se cere să lansăm automat o aplicație împreună cu X. Am ales să fac asta mai târziu, după cum este necesar, folosind PuTTY pe care îl aveam deja în funcțiune.

În al treilea pas, specificăm parametrii de lansare Xming. Opțiunea Clipboard vă permite să integrați clipboard-ul. De asemenea, pentru funcționare completă, am introdus următorii parametri:

„-dpi 96? – pentru a ajusta dimensiunea fontului. Valoarea poate fi ajustată după gust.

„-xkblayout us,ru” – pentru lucrul cu două configurații de tastatură.

„-xkbvariant basic,winkeys” – clarificarea layout-urilor.

„-xkboptions grp:caps_toggle” – comutarea aspectului utilizând tasta CAPS LOCK.

Și, în sfârșit, în pasul următor, salvați setările cu butonul „Salvați configurația” și porniți serverul X cu butonul „Finalizare”.

Pictograma Xming va apărea în bara de sistem.

Deci, serverul X rulează. Ne întoarcem la consola noastră furnizată de conexiunea SSH. Aici putem lansa de la distanță o aplicație de consolă, iar în aceeași consolă vom vedea rezultatul acestei aplicații. Ce se va întâmpla acum dacă încercăm să rulăm o aplicație grafică în această consolă? De obicei, dacă vă conectați prin SSH și încercați să lansați o aplicație cu ferestre, veți primi o eroare, deoarece v-ați conectat la computerul de la distanță în modul consolă și pur și simplu nu există nimic cu care să desenați ferestre. Cu toate acestea, de data aceasta am activat redirecționarea grafică către computerul nostru Windows, care are deja propriul său server X care rulează. Prin urmare, dacă încercați să rulați o aplicație cu fereastră într-un terminal de consolă la distanță, fereastra acesteia va fi desenată pe computerul Windows. De exemplu, încercați să tastați următoarea comandă:

$gedit&

Ampersand de la sfârșitul comenzii indică faptul că programul ar trebui să fie rulat în fundal, astfel încât consola să fie disponibilă pentru alte acțiuni în timp ce rulează.

28 iulie

Noile versiuni de Ubuntu au deja un server VNC încorporat. Vom folosi instrumentele sale standard. În timp ce înțelegeam această problemă, a trebuit să citesc un număr decent de forumuri. Deci, mulți utilizatori scriu că în versiunea ubuntu 14.04 acest truc nu funcționează din cauza unor subtilități interne ale structurii kernelului. Nu am intrat profund în această întrebare... în orice caz, dacă dintr-o dată ești fericitul proprietar al acestei versiuni, poți folosi serverul alternativ x11vnc.

Se instalează destul de simplu:

Sudo apt-get remove vino sudo apt-get install x11vnc

În același articol, ne vom uita la serverul VNC standard deja inclus în ubuntu în mod implicit. Cum să setezi totul?

Să ne conectăm la gazda de la distanță.

Ne conectăm prin ssh la computerul de la distanță la care dorim să obținem acces grafic. În același timp, trebuie să-i cunoaștem ip-ul și să ne logăm cu parola utilizatorului al cărui ecran dorim să-l vedem. De fapt, ni se vor potrivi datele oricărui utilizator cu drepturi sudo, dar apoi va trebui să ajustăm câteva puncte.

Deci, să presupunem că într-o rețea locală avem un computer care rulează Ubuntu cu o adresă IP de 10.20.0.30 și un utilizator feanor184. Ne conectăm la el din consolă cu tasta -X (pentru a lansa graficul X):

Ssh -X [email protected]

introduceți parola și intrați în consola computerului nostru la distanță.

Acum, intră în el:

Sudo vino-preferințe

și vedeți fereastra grafică

Bifați casetele aici:

permite altor utilizatori să vă vadă desktopul — Vă permitem să vă vizualizați desktopul.

permiteți altor utilizatori să vă controleze desktopul — Vă permitem să controlați mouse-ul și tastatura de la distanță.

solicitați utilizatorului să introducă această parolă — Asigurați-vă că setați o parolă pentru conexiune. Câți oameni navighează în rețeaua noastră?

afișează pictograma zonei de notificare: întotdeauna — Afișăm întotdeauna pictograma vnc în partea de sus a ecranului în tavă.

De asemenea, puteți seta propriile setări - setările mele sunt descrise aici)

Salvați setările și deconectați-vă de la gazda la distanță.

Pentru a vă conecta la computerul configurat, folosim orice client cu suport vnc.

De exemplu, Remmina este pentru Linux.

UltraVNC Viewer - pentru Windows.

Permiteți-mi să vă reamintesc încă o dată că, pentru ca setările de conexiune descrise să funcționeze, computerul de la distanță trebuie să ruleze Ubuntu OS. Instalarea ubuntu este un subiect separat pe care nu aș dori să mă concentrez aici, așa că vom sări peste acest pas. Există multe manuale pe acest subiect pe Internet.

Cu ce ​​ajungem?

Am putut să ne conectăm la un computer de la distanță care rulează ubuntu și să efectuăm orice operațiuni pe el ca și cum am fi stat la monitorul său.

ȘI Vino. Principiul general de funcționare: un tunel SSH securizat este creat de la un computer Windows la Ubuntu și o conexiune VNC (desktop la distanță) este creată prin intermediul acestuia.

Articolul este împărțit în patru părți:

  • Instalarea și activarea SecureShellServer: sudo apt-get install openssh-server service ssh status ssh start/running, process 2006

    Verificarea faptului că portul 22 este deschis (portul implicit utilizat de SSH):

    Netstat -tulpan | grep:22 tcp 0 0 0.0.0.0:22 0.0.0.0:* ASCULTĂ -

    În Linux, pentru a vă conecta prin SSH utilizând redirecționarea portului local, se utilizează în general următoarea comandă:

    Ssh -C -p -L<локальный_порт>:<адрес_машины>:<удаленный_порт>-l<пользователь>

    Aceasta înseamnă că orice conexiune care provine de la computerul local (localhost) prin port<локальный_порт>va fi redirecționat prin tunelul SSH către<удаленный_порт>mașină la distanță.

    Există o oarecare confuzie cu privire la ce IP să includă Și<адрес_машины>. Dacă computerul se află în spatele unui router (NAT), atunci<адрес_машины>trebuie să fie adresa IP internă a computerului (de exemplu, 10.0.0.5) și în adresa IP externă a routerului. Dacă computerul se conectează direct la Internet, atunci adresele Și<адрес_машины>va fi la fel.

    Pentru a rezuma despre tunelare, luați în considerare un exemplu:

    Ssh -l myuserid -L 7777:work:22 gate ssh -p 7777 localhost

    Această comandă face următoarele: creează o conexiune SSH securizată la mașina de poartă sub userid myuserid. În același timp, ascultarea începe pe mașina locală (de la care s-a făcut conexiunea) pe portul 7777. Dacă o conexiune este organizată pe acest port (din nou din interiorul mașinii locale), atunci această conexiune este tunelizată într-o conexiune ssh , ajunge la mașina de poartă și de la acesta se face o conexiune la mașina de lucru pe portul 22. După aceasta, verificăm funcționarea tunelului - prin conectarea prin ssh la portul local 7777, eventual ne conectăm la mașina de lucru (ținând cont că are un server ssh configurat pe portul 22).

    Securitatea sporită atunci când se utilizează un tunel SSH se realizează datorită faptului că un singur port trebuie să fie deschis spre exterior (SSH) și conexiunea criptată va trece doar prin acest port.
    Verificăm dacă folderul este prezent pe server

    /Acasă/<имя_пользователся>/.ssh

    /Acasă/<имя_пользователся>/.ssh/authorized_keys

    în el, dacă nu, atunci creați-l sub utilizator<имя_пользователся>(de obicei acesta este primul utilizator din sistem sau administrator)

    Mkdir ~/.ssh cd ~/.ssh atinge tastele_autorizate

    Configurarea ssh pentru o mai mare securitate. Fișierul de setări se află la

    /etc/ssh/sshd_config

    Efectuarea unei copii de rezervă

    Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

    În general, ar trebui să schimbați:

    • Port de ascultare TCP (implicit 22):
      Port<Порт_на_котором_SSH_будет_ждать_подключения>
    • Dezactivați vechiul protocol SSH ver.1, nefiabil:
      Protocolul 2
    • Permite autentificarea perechii de chei publice/private:
      PubkeyAuthentication da
    • Indicați unde să căutați cheile publice rezolvate:
      AuthorizedKeysFile %h/.ssh/authorized_keys
    • Dezactivați capacitatea de autentificare folosind o parolă (se poate face mai târziu, după o primă conexiune reușită):
      PasswordAuthentication nr

    Pentru o mai mare securitate, ar trebui să configurați autentificarea SSH folosind o cheie publică.
    Cheile publice permise pentru conexiunile ssh sunt stocate în fișier

    ~/.ssh/authorized_keys

    Generam o pereche de chei publice/private pe masina cu care ne vom conecta (va fi descrisa mai tarziu) si copiam cheia publica in acest fisier.

    O atenție deosebită trebuie acordată formatării - întreaga cheie ar trebui să fie plasată pe o singură linie și să înceapă cu „ssh-rsa” și acces la fișiere (-rw——- (600)).

    Configurarea accesului corect la fișierul cheie

    Chmod go-w $HOME $HOME/.ssh chmod 600 $HOME/.ssh/authorized_key chown `whoami` $HOME/.ssh/authorized_keys

    În fișierul de setări /etc/ssh/sshd_config Schimbare

    StrictModes nr

    Pentru a aplica setările făcute la fișier /etc/ssh/sshd_config, trebuie să reporniți demonul sshd.

    Sudo /etc/init.d/ssh reporniți

  • Descărcați putty.exe.
    Înainte de a te scufunda în setările Putty, trebuie să faci câteva note.
    • Putty salvează setările în profiluri.
    • Pentru a salva toate setările într-un profil, accesați meniul Sesiune, în coloana Sesiune salvată, introduceți numele profilului și faceți clic pe Salvare. Pentru a încărca un anumit profil în Putty, în același meniu trebuie să selectați profilul dorit după nume și să faceți clic pe Încărcare.
    • Pentru a încărca automat un anumit profil atunci când porniți Putty, trebuie să creați o comandă rapidă la fișierul exe și să adăugați în linia folderului de lucru după calea către fișierul exe
      -sarcină<имя_профиля>

    Pentru a îmbunătăți securitatea vor fi utilizate următoarele:

    • redirecționarea portului local
    • sistem cu cheie publică

    Dacă utilizați o conexiune SSH pentru acces prin VNC (desktop la distanță), trebuie să configurați redirecționarea portului, așa-numita redirecționarea portului local. Este folosit pentru a îmbunătăți securitatea, deoarece atunci când utilizați VNC, datele sunt transmise în text clar.

    Pentru a redirecționa porturile în Putty, accesați meniul Conexiune -> SSH -> Tuneluri si adauga 5900 cum ar fi „Port sursă”, localhost:5900în „Destinație” și faceți clic pe Adăugați.

    Puteți folosi Puttygen pentru a crea o pereche de chei publice/private. Descărcați Puttygen.exe. În parametri, selectați SSH-2 RSA, setați numărul de biți la 2048 și faceți clic pe butonul Generare.

    Pentru securitate suplimentară, puteți introduce „fraza de acces” de două ori. Dacă este nevoie să vă conectați imediat la consolă în timpul unei conexiuni SSH, atunci câmpul poate fi lăsat gol.

    Cheia publică este salvată într-un format pe care doar Putty îl poate înțelege. Prin urmare, pentru a-l instala pe Linux, trebuie să faceți următoarele:

    1. În timp ce puttygen este încă deschis, copiați cheia publică în secțiunea „Cheie publică pentru lipire...” și inserați-o în fișier chei_autorizate pe server.
    2. Indicați Putty către fișierul cheie privată din meniul Connection -> SSH -> Auth din secțiunea „Fișier cheie privată pentru autentificare” generat fișier *.ppk.
  • În mod implicit, Ubuntu include deja serverul Vino VNC. Pentru a-l configura, trebuie să accesați Meniu -> Sistem -> Preferințe -> Desktop la distanță și să activați accesul de la distanță. În setări puteți activa autentificarea prin parolă, dar nu puteți configura portul de ascultare (se folosește 5900).
    Pentru a permite o configurare mai detaliată, se recomandă instalarea X11VNC.
  • Descărcați TightVNC și instalați. În sensul acestui articol, este suficient să selectați doar rolul de client.

    Lansați TightVNC pe o mașină Windows și intrați