SSH, mai mult decât un shell securizat

SSH (shell securizat) este un protocol care ne ajută să accesăm în siguranță computerele la distanță, practic așa cum o face Telnet, dar folosind algoritmi de criptare care ne ajută să ne păstrăm conexiunea în siguranță, mai ales dacă dorim să accesăm computere care îndeplinesc o funcție importantă în cadrul unei organizații de rețea.

În general, pentru a accesa trebuie să furnizăm numele de utilizator și adresa computerului, astfel încât serverul SSH să ne ceară parola de acces:

ssh usuario@equiporemoto

Din momentul în care clientul inițiază prima conexiune între computerul la distanță și noi, informațiile călătoresc deja în siguranță, împiedicând pe cineva să obțină acreditările noastre de acces la computerul menționat, totuși SSH este un protocol foarte adaptabil care ne oferă multe posibilități.

SCP

Primul este să puteți transfera fișiere între client și computerul de la distanță, fără a fi nevoie să montați un server FTP sau NFS, utilizând pur și simplu SCP (Secure CoPy) pe care majoritatea serverelor SSH îl implementează:

scp archivo.tar.gz usuario@equiporemoto:/home/usuario
scp usuario@equiporemoto:/var/log/messages messages.txt

Tunelare SSH

Această caracteristică este foarte utilă, deoarece ne permite să trimitem și să primim informații care nu sunt neapărat comenzi shell între client și computerul de la distanță, de exemplu navigarea obișnuită. Dacă nu ghiciți ce utilizare poate avea acest lucru, gândiți-vă la următoarele: trebuie să accesați o pagină, dar locul în care vă aflați are un firewall implementat care blochează exact acea pagină, prin urmare, putem face „tunelare” cu o telecomandă computer care nu are blocurile menționate și navighează pe pagina menționată prin sesiunea noastră SSH:

ssh -D 8888 usuario@equiporemoto

Odată conectat, clientul nostru SSH „ascultă” pe portul 8888 ca server proxy, astfel încât să ne putem configura browserul și tot traficul să fie transmis prin sesiunea SSH

Tunelul SSH

Un alt exemplu care mi se întâmplă este când, din cauza unor restricții geografice, nu putem accesa un serviciu web de unde ne aflăm, atunci când facem tunelul, respectivul serviciu web detectează IP-ul serverului nostru la distanță ca sursă, nu IP-ul clientului nostru. Acest lucru este oarecum echivalent cu VPN-urile (rețea privată virtuală)

SSH invers

Dacă, dintr-un anumit motiv, trebuie să accesăm un computer care se află în spatele unui firewall și nu ne permite să redirecționăm trafic SSH către acesta, putem face un „SSH invers”, astfel încât computerul să se conecteze la un alt server SSH, la care ne putem conecta și pentru a accesa echipamentul din spatele firewall-ului. Un exemplu care ne vine în minte este atunci când vrem să ajutăm un prieten care habar nu are cum să configureze o redirecționare pe modemul său, dar trebuie să-i accesăm computerul de la distanță:

Prieten -> Modem -> Server SSH <- Despre noi

Pașii de urmat sunt relativ foarte simpli:

amigo
ssh -R 9999:localhost:22 usuario@servidorssh

Despre noi
ssh usuario@servidorssh
Odată ajuns în serverul SSH, ne putem conecta cu echipa prietenului nostru folosind
ssh amigo@localhost -p 9999

După cum puteți vedea, toată magia constă în parametrul -R, care spune serverului intermediar că pe portul 9999 computerul prietenului nostru ascultă acum ca server.

Acestea sunt doar câteva posibilități pe care ni le oferă SSH, dar vă invit să mai experimentați câteva, de exemplu; putem face scripturi nesupravegheate folosind chei RSA, redirecționa sesiuni X (modul grafic) către mediul nostru grafic, doar pentru a menționa câteva.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Astro el a spus

    Articol excelent, sunt dornic să ajung acasă și să încep să le practic.

    1.    adr14n el a spus

      Mulțumesc mult! Este de fapt prima mea postare pe blog și este foarte frumos să citesc aceste comentarii. Noroc!

  2.   Pablo cardozo el a spus

    Chiar ieri am întrebat ceva despre acest subiect și este următorul.

    Există o modalitate de a putea scp un folder întreg, dar ținând cont de data fișierelor? Cu alte cuvinte, am un folder cu multe fișiere pe care le-am descărcat cu ceva timp în urmă, sunt interesat să descarc doar ceea ce a fost încărcat în acel folder de la o anumită dată.

    Salutări și multe mulțumiri în avans.

    1.    plin de viață el a spus

      Puteți face acest lucru cu RSYNC peste SSH. 😉

      1.    giskard el a spus

        rsync este capacul borcanului !!! 😀

      2.    Eduardo el a spus

        Vă recomand să încercați la unison, este SPECTACULAR, este disponibil în repo (cel puțin debian și ubuntu)

        http://www.cis.upenn.edu/~bcpierce/unison/

        Îl folosesc pentru a face copii de rezervă zilnice ale notei mele pe un alt computer, pe lângă faptul că am directoare sincronizate pe diferite computere.

        Este foarte ușor de utilizat

        Sper sa va fie de folos!

        Exitos
        Eduardo

    2.    Stangaci el a spus

      Asta pare mai mult o sarcină ca pentru rsync, dar nu știu dacă există un parametru care să facă acest lucru în mod specific, dacă nu, poate că ar trebui să fie tratat dintr-un script

    3.    adr14n el a spus

      Ceea ce mi se întâmplă este să fac un ls ordonat după dată, iar de acolo să le copiez pe cele de care aveți nevoie cu un scp simplu, deoarece scp nu are atât de multe funcții pe cât se spune, are rsync.

  3.   anonim el a spus

    Atest că inversul ssh este luxos, l-am folosit între computerul meu și altul aflat la mai mult de 700 km distanță și zero probleme.
    Vă mulțumim pentru aceste articole, sunt foarte valoroase.

  4.   înceta el a spus

    Atât de sărat! Haha, nu știam că ssh are atât de multe posibilități, vreau deja să învăț cum să configurez un server ssh și să încep să experimentez capacitățile sale, doar un lucru, ai putea explica ce face fiecare parametru?

    1.    adr14n el a spus

      Potrivit omului ssh în sine, -D servește la specificarea locală a unui „forwarder de aplicații dinamice”, care, așa cum am explicat în articol, servește la trecerea traficului printr-un tunel în cadrul aceleiași sesiuni SSH. -R specifică portul de la distanță care va fi redirecționat către computerul nostru local printr-un „redirecționare”. Și în cele din urmă -p specifică la ce port ar trebui să se conecteze clientul, atunci când nu folosește portul standard: 22

  5.   manuelmdn el a spus

    Bine că atinge acest subiect, am o întrebare despre cheile ssh, puteți genera mai multe chei pentru diferite servicii? Sper că au făcut o postare despre gestionarea cheilor ssh, știu că în google există răspunsul., Dar sperăm că voi vor vorbi despre asta,

    Salutări!

    1.    adr14n el a spus

      Când utilizați autentificarea prin chei SSL, puteți exporta aceleași (ale computerului dvs.) la servicii diferite și în același mod, dacă computerul dvs. este serverul, puteți încorpora chei diferite de la computere diferite. Nu știu dacă am răspuns la întrebarea ta, dar am înțeles asta. Noroc

  6.   Luis el a spus

    Cred că îmi amintesc că a existat o modalitate prin ssh care ne-a permis să rulăm o aplicație de la distanță și să o vizualizăm pe computerul nostru ca și cum ar fi o aplicație locală.

    De exemplu, am putea rula Firefox, îl putem vedea și controla pe computerul nostru local, dar procesul rulează pe computerul de la distanță.

    Este util în special pe computerele cu resurse puține, dar, din păcate, nu controlez problema și nu știu cum să configurez computerele pentru a face acest lucru.

    Stie cineva ceva despre asta?

    1.    Personal el a spus

      Pentru așa ceva ar fi convenabil să folosiți VNC și puteți face tuneluri cu SSH.

      1.    x11tete11x el a spus

        @Staff pentru mine nu ar fi convenabil să folosesc VNC .. cu VNC dacă nu sunt rău aduci întregul desktop ..

        @Luis, ceea ce faci se face prin simpla adăugare a parametrului „-X” la ssh (trebuie să permiți redirecționarea X pe serverul tău)

        http://i.imgur.com/NCpfzBL.jpg

      2.    Personal el a spus

        @ x11tete11x
        Având în vedere ceea ce a menționat Luis, m-am gândit să-i ofer o altă alternativă, deoarece:

        1. "Utilizabil în special pe computere cu puține resurse ..."

        -În cazul unei singure aplicații, este posibil să nu consume atât de multe resurse, dar încercarea de a deschide 10 ferestre cu redirecționare x continuă să facă sistemul să funcționeze mai greu decât având o singură instanță VNC, deoarece VNC nu „aduce întregul desktop”
        -Când închideți programul pe client, acesta ajunge la fel pe server (cineva mă corectează dacă greșesc), în timp ce cu VNC puteți, de exemplu, să părăsiți toată noaptea descărcând un torrent și să vă conectați din nou în dimineața și totul va continua la fel cum plecasem.
        -VNC este un protocol agnostic de sistem, îl puteți accesa de la un client pe Win, Andorid, Mac OSX etc. și utilizați programele dvs. GNU / Linux, fără a fi nevoie să instalați altceva decât clientul VNC în sine.

        Și 2. «... din păcate nu controlez problema și nu știu cum să configurez computerele pentru a face asta.»

        Este mult mai ușor (Și fără risc să tastați ceva greșit și să reporniți fără desktop) să instalați VNC și să configurați tunelul SSH (Se face cu GUI) decât să mutați fișierele de configurare X.

      3.    Luis el a spus

        Vă mulțumesc amândoi pentru comentarii.

        Folosesc SSH împreună cu SHFS de mult timp pentru a accesa conținutul de la distanță al serverului meu mic, dar nu am reușit niciodată să rulez aplicații la distanță într-un mediu grafic.

        Voi încerca ambele opțiuni pentru a vedea cum funcționează. Ceea ce spuneam la început pare mai simplu, deoarece conform x11tete11x, trebuie doar să adăugați un parametru.

        Apoi voi vedea dacă pot găsi o modalitate simplă de a configura VNC, deoarece sunt un pic mare, sunt un utilizator Arch, așa că sigur vor exista informații pe wiki, un alt lucru este că aflu. Hehehe

        Un salut.

    2.    adr14n el a spus

      Se poate face prin trecerea parametrului -X la sesiune, dar trebuie să aveți serverul X configurat pentru a accepta conexiuni de la un computer din rețea, cred că este configurat cu utilitarul xhost. După cum menționează personalul, VNC este, de asemenea, o opțiune foarte bună

    3.    mario el a spus

      Este redirecționarea X11, aici pe același site există o postare despre asta:
      https://blog.desdelinux.net/x11-forwarding-a-traves-de-ssh/

    4.    Luis el a spus

      Vă mulțumim pentru informații prieteni.

      Am spus, o voi face folosind ambele opțiuni pentru a vedea care mi se potrivește mai bine.

      Salutări!