Existen varios protocolos para poder acceder vía remota a un equipo, los cuales los mas famosos son los denominados de escritorio remoto, como pueden ser RDP que es el escritorio remoto de windows o los tan famosos VNC que están para todas las plataformas.
Estos escritorios remotos se basan en unos protocolos internos para realizar las conexiones y el que vamos a tratar hoy es el protocolo SSH.
SSH o Secure Shell es un protocolo seguro de comunicación que sirve para establecer conexiones entre equipos de forma remota via linea de comandos. Su principal via de usos es la de acceder a equipos con sistemas operativos Linux o MAC, y aunque existe una version para instalar en equipos windows es bastante complicada y no suele ser utilizada (basada en Cygwin, podéis encontrar como hacerlo aqui).
SSH trabaja de forma similar a Telnet, pero la comunicación entre dispositivos esta cifrada
También podemos encontrar en muchos manuales, que se utiliza SSH cuando queremos acceder a dispositivos los cuales en su base suelen tener linux, como pueden ser moviles android, NAS y en general dispositivos complejos los cuales tienen algún tipo de conexión a la red como arduino o raspberry pi.
Hay que señalar que los dos dispositivos, tanto al que queremos acceder y el que utilizamos para controlar deben tener una versión de SSH para poder utilizarlo; en muchos dispositivos ya los tienen por defecto activado y en otros tenemos que instalarlo.
Para instalarlo nos basaremos en su distribución mas usada, la OpenSSH en un sistema linux como por ejemplo, desde la terminal ejecutaremos sudo apt-get install ssh o iremos a nuestro gestor de aplicaciones del sistema y buscaremos ssh para instalarlo.
En android por ejemplo ya esta habilitado y simplemente utilizando un cliente ssh en tu ordenador podrás conectarte al dispositivo, para ello deberás utilizar un cliente de los cuales te recomendamos mas abajo.
Bien ahora que ya tenemos instalado en nuestro dispositivo u ordenador el cliente SSH, vamos a otro ordenador que sera el que utilizaremos para conectarnos al cliente.
Aquí dependerá del ordenador o dispositivo que tengamos, utilizaremos un cliente SSH u otro.
Para windows utilizaremos Putty, para linux el terminal, para cualquier otro dispositivo buscar un cliente SSH ya que existen multitud para dispositivos IOS y android.
Bien a partir de aquí utilizaremos para la explicación un sistema Linux bajo el terminal, por lo que vamos a nuestro terminal.
Para poder conectarnos al otro dispositivo deberemos saber su dirección IP o en en caso de equipos externos a nuestra red su dominio, por lo que o sabemos como se llama o mediante otros métodos buscamos la Ip del dispositivo; cuando sepamos la ip escribiremos en el terminal: ssh usuario@IpdestinooDominio tras lo cual nos preguntara la contraseña del usuario antes especificado.
Ejemplo: ssh administrador@192.168.1.23 nos preguntara la contraseña del administrador del equipo el cual esta en la ip 192.168.1.23
Ejemplo2: ssh administrador@google.es -p 159 que nos conectara por ssh al servidor de google a través del puerto 159 (no funciona es un ejemplo, por si habéis intentado conectaros a google jejejeje)
Si todo va bien estaremos dentro del equipo destino y desde alli con comando de terminal podremos manejarlo a nuestro antojo, por ejemplo actualizar o instalar programas (sudo apt-get update | sudo apt-get upgrade | sudo apt-get install vlc) o iniciar una sesión X11 para poder conectarnos a traves de cualquier programa VNC para utilizar el entorno gráfico como Reminna (sudo x11vnc -display :0 -auth /var/run/lightdm/root/:0 -noxdamage -solid)
Por regla general utilizaremos para las conexiones ssh usuario@ip pero también es muy usual utilizar -p para el puerto si nos conectamos externamente de nuestra red o -L para re-dirigirnos internamente desde la ip destino hacia otra ip del otro sistema. Tiene varias conexiones que son:
ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q cipher | cipher-auth | mac | kex | key | protocol-version] [-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command]
Podéis encontrar mas información en la pagina oficial
CLIENTES SSH
- Linux: utilizamos el terminal o linea de comandos.
- MAC: Linea de comandos o terminal
- windows: Putty, bitvise
- IOS: Prompt, rapidssh, aunque os recomiendo RemoterPro por tener también para escritorios remotos.
- Android: juicessh, bVNC (con vnc), vssh
Espero que os sirva para que tengáis acceso a vuestros ordenadores y dispositivos desde cualquier lugar y así tener mas control sobre nuestras redes.
Recomendado también el reportaje conexiones simultaneas con ssh mediante CSSH para poder controlar varios equipos la mismo tiempo