SSH significa Secure Shell; esta definición no nos dice mucho, pero para entenderlo un poco mejor, empezaré desde el principio.
SSH es un protocolo. Un protocolo o protocolo de comunicaciones es un conjunto de reglas común para las máquinas que sirve para establecer una conexión y que se entiendan entre ellas. Es decir, si yo tengo un móvil que se conecta a internet, tengo que usar un protocolo de comunicación con un servidor que no es el mismo si mi móvil llama a otro móvil para hacer una llamada. (Aunque ahora podemos hacer llamadas de voz tambien a través de internet, pero eso es otro tema)
Existen muchas capas de abstracción que simplifican el problema de hacer una llamada dándole a un botón, pero dentro del móvil ocurren una serie de procesos a más bajo nivel. Estas comunicaciones se basan en un modelo llamado OSI. Este modelo establece 7 capas para que la información sea transmitida desde un dispositivo hasta su destino sin perderse por el camino y “garantizando” su seguridad para que no sea leida por otras personas.
Nos centraremos en la capa número 7, que es la Capa de Aplicación. En esta capa podemos observar algunos protocolos conocidos :
- FTP (File Transfer Protocol – Protocolo de transferencia de archivos).
- DNS (Domain Name Service – Servicio de nombres de dominio).
- DHCP (Dynamic Host Configuration Protocol – Protocolo de configuración dinámica de anfitrión).
- HTTP (HyperText Transfer Protocol) para acceso a páginas web.
- HTTPS (Hypertext Transfer Protocol Secure) Protocolo seguro de transferencia de hipertexto.
- POP (Post Office Protocol) para recuperación de correo electrónico.
- SMTP (Simple Mail Transport Protocol) para envío de correo electrónico.
- SSH (Secure SHell)
- TELNET para acceder a equipos remotos.
- TFTP (Trival File Transfer Protocol).
- LDAP (Lightweight Directory Access Protocol).
- XMPP, (Extensible Messaging and Presence Protocol) – Protocolo estándar para mensajería instantánea
Cuando nos conectamos a una página en un navegador, usamos HTTP o HTTPS. Cuando nos conectamos a un chat usamos el protocolo XMPP, cuando miramos el correo elctrónico usamos POP o SMTP, cuando descargarmos un archivo, ya sea adjunto en un correo o lo dejamos en la nube, usamos FTP. Y entre otros podemos observar a SSH.
Si alguien utiliza la terminal del ordenador. Esa pantalla negra donde aparecen letras y que solo la suelen usar los programadores para hacerse los guays. Pues SSH permite entrar en un equipo remoto a través de la terminal. En lugar de ver los directorios de tu ordenador local, estableces una conexión con otro ordenador y puedes observar el contenido y ejecutar instrucciones en la terminal como si estuvieras trabajando en él pero desde otra parte.
Pues bien, la mejor manera de aprender a establecer una conexión ssh con un servidor. Es decir, compramos una cuenta de esas que cuestan 2 euros al año y nos conectamos a él. Las cuentas gratuitas no permiten el acceso ssh, hay que gastarse algo de dinero. También se puede establecer una conexión entre 2 equipos pero hay que configurarlos debidamente.
Para establecer una conexión hay que buscar en el panel ssh del servidor 3 cosas.
- El usuario (u123456)
- La dirección del dominio. (direccionweb.com)
- La contraseña de acceso.
Despues escribimos en terminal la siguiente linea:
ssh -p 22 u123456@direccionweb.com
*No os olvidéis del @ entre el usuario y la dirección del domino
Acto seguido nos pedirán la contraseña para acceder y ya tendremos acceso. A partir de este momento podemos ejecutar instrucciones en el servidor como si lo tuvieramos delante. Eso sí, no tendremos permisos suficientes para hacer lo que nos dé la gana, como instalar programas, acceder o eliminar carpetas del sistema. Pero sí que podremos hacer otras acciones, conectar a nuestras bases de datos, crear un repositorio GIT de nuestros proyectos dentro del mismo servidor u otros servicios que tengan instalados en el mismo.
Hay que pensar que un servidor es otro ordenador (Seguramente Linux) con las mismas prestaciones que el nuestro o mejores. Se ofrecen algunas libertades, no todas. Pero si queremos algo más personalizado se pueden comunicar 2 equipos por este mismo método con todos los permisos activados para tener mayor libertad.