SSH, més que un shell segur

SSH (Secure SHell) és un protocol que ens serveix per accedir de forma segura a equips remots, bàsicament com ho fa Telnet, però usant algoritmes de xifratge que ens ajuden a mantenir la nostra connexió segura, sobretot si volem accedir a equips que exerceixen alguna funció important dins una organització.

Generalment, per accedir hem de proporcionar el nostre usuari i la direcció de l'equip, perquè el servidor SSH ens demani la contrasenya d'accés:

ssh usuario@equiporemoto

Des que el client inicia la primera connexió entre l'equip remot i nosaltres, la informació ja està viatjant de forma segura, evitant que algú pugui obtenir les nostres credencials d'accés a aquest equip, però SSH és un protocol molt adaptable i que ens ofereix moltes possibilitats.

SCP

La primera d'elles és poder transferir arxius entre el client i equip remot, sense necessitat de muntar un servidor FTP o NFS, simplement usant SCP (Secure CoPy) que implementen la majoria de servidors SSH:

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

Túneles SSH

Aquesta característica és molt útil, ja que ens permet enviar i rebre informació que no necessàriament siguin ordres shell entre el client i l'equip remot, per exemple la navegació comuna i corrent. Si no endevinen que utilitat pot tenir això pensin en el següent: necessiten accedir a una pàgina, però el lloc on estan té implementat un tallafocs que bloqueja precisament aquesta pàgina, per tant, podem fer 'tunneling' amb un equip remot que no tingui aquests bloquejos i passar la navegació en aquesta pàgina per la nostra sessió SSH:

ssh -D 8888 usuario@equiporemoto

Un cop connectats, el nostre client SSH 'escolta' al port 8888 com un servidor intermediari, perquè puguem configurar el nostre navegador i tota el trànsit sigui transmès a través de la sessió SSH

Túnel SSH

Un altre exemple que se m'acut, és quan per alguna restricció geogràfica, no puguem accedir a algun servei web des d'on estem, a l'fer el túnel, aquest servei web detecta com a origen la IP del nostre servidor remot, no la nostra IP de client. Això equival d'alguna manera a les VPNs (Virtual Private Network)

Revers SSH

Si per alguna raó necessitem accedir a un equip que es troba darrere d'un tallafocs i aquest no ens permet redireccionar el trànsit SSH cap a ell, podem fer un 'reverse SSH', de manera que aquest equip es connecti a un altre servidor SSH, a l' qual nosaltres puguem també connectar-nos, per poder així accedir a l'equip darrere de l'tallafocs. Un exemple que em ve al cap, és quan volem ajudar a un amic que no té ni idea de com configurar una redirecció en el seu mòdem, però necessitem accedir al seu equip de manera remota:

Amic -> Mòdem -> Servidor SSH <- Nosaltres

Els passos a seguir són relativament molt senzills:

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

Nosaltres
ssh usuario@servidorssh
Un cop dins de l'servidor SSH, podrem connectar-nos amb l'equip del nostre amic amb el
ssh amigo@localhost -p 9999

Com podran observar, tota la màgia rau en el paràmetre -R, que li indica a el servidor intermedi que al port 9999 està escoltant l'equip del nostre amic ara com a servidor.

Aquestes només són algunes possibilitats que SSH ens ofereix però els convido a que experimentin amb algunes més, per exemple; podem fer scripts desatesos usant claus RSA, redireccionar sessions X (mode gràfic) al nostre entorn gràfic, només per esmentar algunes.


Afegir com a font preferida a Google