SSH - Todo lo que necesitas saber

Podemos definir el servidor SSH como un protocolo que permite acceder de forma remota a sistemas Linux con la máxima seguridad, ya que las comunicaciones entre cliente y servidor son cifradas.

- ¿Qué es el SSH?
- Cifrado SSH
- ¿Cómo funciona el SSH?
- Servidor SSH Linux
- Instalar servidor SSH
- Puertos SSH
- Comandos SSH
- Otros comandos SSH

¿Qué es el SSH?

El SSH, Secure Shell, es un protocolo de administración remota a través del cual los usuarios pueden tanto modificar como controlar sus servidores remotos en Internet. Se creó para sustituir a Telnet, un protocolo no cifrado y que por tanto no ofrecía ningún tipo de seguridad a los usuarios.
 
En cambio, SSH hace uso de las técnicas de criptografía más innovadoras con el claro objetivo de que todas las comunicaciones realizadas entre los usuarios y los servidores remotos sean seguras. Dispone de una herramienta que permite autenticar al usuario remoto para posteriormente transferir las entradas desde el cliente al host y, finalmente, realizar la salida de vuelta a los usuarios.
 
Merece la pena destacar que los usuarios de los sistemas operativo Linux y MacOS pueden implantar el protocolo SSH en su servidor remoto de forma muy sencilla a través del terminal. Por supuesto, los usuarios de Windows también pueden hacerlo, aunque el procedimiento es diferente.

Cifrado SSH

En el ámbito de la seguridad informática, hay tres conceptos que resulta interesante conocer:
  • Cifrado simétrico
  • Cifrado asimétrico
  • Hashing.

Cifrado simétrico

También denominado “Shared Key” o “Shared Secret” en determinados campos, se caracteriza por el uso de una única llave tanto para cifrar como para descifrar la información.

Para entender el concepto con un sencillo ejemplo:

Imaginemos que el usuario A desea enviar un mensaje al usuario B; pues bien, si el usuario A hace uso de la llave “!@$^& para cifrar dicho mensaje, el usuario B debe utilizar esa misma llave para descifrar la información que ha recibido del usuario A.

Algunos de los algoritmos de cifrado simétricos que se utilizan con más frecuencia son los siguientes:
  • DES
  • 3DES
  • AES
  • RC4
Los algoritmos 3DES y AES se utilizan de forma habitual por el protocolo IPSEC para establecer las conexiones de servidores virtuales privados. Mientras, el algoritmo RC4 se utiliza para el cifrado de información en tecnologías que hacen uso de las redes inalámbricas.

El cifrado simétrico ofrece una serie de ventajas a los usuarios muy interesantes, siendo las más destacadas la rapidez y la facilidad de uso. Además, se puede implementar de forma sencilla en lo relativo al hardware, sin necesidad de contar con conocimientos informáticos muy avanzados en el ámbito.

Cifrado asimétrico

Al cifrado asimétrico también se le conoce como “Criptografía de Llave Pública”. La principal diferencia con respecto al cifrado simétrico radica en que en este caso son necesarias dos llaves; una para el cifrado de la información y otra para el descifrado de la misma.
 
De este modo, cada uno de los usuarios que intervienen en el envío de información cuentan con dos llaves. Por un lado, la llave pública, la cual se utiliza para cifrar la información. Y, por otro lado, la llave privada, destinada al desciframiento de la misma.

Para explicar el concepto de cifrado asimétrico vamos a exponer un sencillo ejemplo.

Los usuarios A y B desean enviarse correos electrónicos de forma segura; es decir, el usuario A desea estar seguro de que los mensajes que envía al usuario B sólo puedan ser leídos por éste, y viceversa.

De este modo, ambos usuarios llegan a un acuerdo para cifrar los correos electrónicos, haciendo uso de un algoritmo de cifrado asimétrico. Así, el usuario A escribe un mensaje y lo cifra con la llave pública del usuario B, para luego enviarlo. De este modo, el usuario B recibe el correo electrónico y utiliza su llave privada para descifrarla y poder así acceder a su contenido.

A continuación, el usuario B desea responder al mensaje recibido por parte del usuario A. Para ello, escribe un correo electrónico y lo cifra con la llave pública del usuario A. A continuación, el usuario A recibe el mensaje y hace uso de su propia llave privada para descifrar el contenido.

La llave pública de ambos usuarios es de conocimiento universal; es decir, todo el mundo puede conocerla. No obstante, la llave privada, tal y como su propio nombre indica, no es posible conocerla.

Hashing

El hashing es como se conoce a la función  matemática que no cuenta con inversa, de modo que da un resultado de longitud fija. Mientras que el principal objetivo del cifrado tanto simétrico como asimétrico es garantizar la confidencialidad de la información, el hashing se utiliza para garantizar la integridad de la información compartida.

La confidencialidad radica en que ningún usuario conozco el contenido de la información que ha sido enviada mediante un canal de comunicación que es considerado inseguro, como Internet, a excepción del emisor y receptor del mensaje en cuestión. Mediante la función de integridad, se garantiza que un mensaje no ha sido alterado en ningún punto durante el periodo transcurrido entre la emisión y la recepción del mismo.

Dos de los algoritmos que se utilizan con mayor frecuencia a día de hoy son MD5 y SHA-1. Debido a que el hashing da un resultado único de longitud fija, si algún bit de información es modificado de algún modo, este produce un hash distinto al original. De este modo, el receptor puede comparar el hash original y el producido en el momento de recibir y descifrar la información, teniendo así la certeza de que la información ha sido alterada.

El cifrado simétrico, cifrado asimétrico y hashing son tres conceptos relativos a la seguridad informática que resulta muy interesante conocer ya que tienen un carácter vinculante en un amplio abanico de tecnologías y protocolos de uso diario, como por ejemplo las compras online o las conexiones vía remota a los servidores virtuales privados.

¿Cómo funciona el SSH?

Tanto en Linux como en Mac, configurar SSH es muy sencillo. En el caso de Windows, tal y como hemos señalado en el punto anterior, es condición indispensable que los usuarios utilicen un cliente SSH.
 

Servidor SSH Linux

Si te preguntas cómo instalar SSH Linux, lo primero que debes hacer es acceder a tu programa de terminal y seguir el siguiente procedimiento. Escribe el comando SSH correctamente:

ssh {user}@{host}

Vamos a explicar qué es este comando SSH paso a paso. Por un lado, {user} se refiere a la cuenta de usuario a la que quieres acceder; si quieres acceder como administrador de sistema, simplemente debes indicar en el apartado {user}, {root}; de esta manera, tendrás plena libertad para realizar cualquier tipo de modificación en el sistema.

Instalar servidor SSH

Para instalar un servidor SSH en Ubuntu lo mejor es utilizar OpenSSH. Un punto a tener en cuenta es que en la gran mayoría de sistemas Linux de este servidor ya están disponibles por defecto. Por lo tanto, para instalarlo simplemente tienes que darle la orden a tu gestor de paquetes.
 
Lo más recomendable es que utilices apt-get bajo la distribución Ubuntu Server 12.04 LTS. Debes ejecutar el siguiente comando.

sudo apt-get update
sudo apt-get install ssh

De esta manera, ya tienes el servidor SSH instalado. Para comprobar que el proceso se ha realizado exitosamente, lo más recomendable es que trates de establecer conexión con el equipo local. Debes hacerlo de la siguiente forma: ssh usuario@localhost.

Puertos SSH

Actualmente, prácticamente el 100% de los servidores utilizan Linux como sistema operativo gracias al soporte y la estabilidad que ofrece. Es por ello que los ataques cibernéticos contra estos servidores son cada vez más frecuentes. Así, se hace necesario reforzar la seguridad en los mismos con el objetivo de evitar cualquier tipo de acceso no autorizado.
 
Una manera fantástica de mejorar la seguridad en servidores Linux es cambiar el puerto SSH que utiliza el administrador para así autentificarse mediante el protocolo SSH. Lo cierto es que cambiar el puerto SSH es un proceso muy sencillo. Lo explicamos paso a paso.
  1. En primer lugar debes editar el archivo ssh_config. Para ello debes utilizar el siguiente comando: nano /etc/ssh/sshd_config. Para lo que es necesario que tengas instalado el editor de texto en línea de comandos para Linux.
  2. Una vez ejecutado el comando, busca la línea en la que ponga “#Port 22”. Así, lo que debes hacer es cambiar el 22 por el número del puerto que quieras configurar. Además, tienes que eliminar el #.
  3. A continuación guarda todos los cambios que has realizado. Para ello pulsa las teclas Control y X al mismo tiempo.
  4. El siguiente paso es reiniciar el servicio SSH con el siguiente comando: /etc/init.d/sshd restart.
  5. A partir de ese momento ya realizarás todas las conexiones con el puerto que has escogido.

Comandos SSH

Tal y como hemos señalado, SSH es un software que permite acceder a otro PC a través de Internet, así como ejecutar comandos en remoto e incluso compartir archivos y ficheros entre dos equipos.

SSH

Este comando ofrece una comunicación muy segura ya que los datos viajan encriptados, a salvo de cualquier tipo de ataque cibernético. Cuando inicias sesión en otro equipo utilizando SSH debes ejecutar el siguiente comando.

[usuario1@localhost usuario1]$ ssh usuario1@servidor.dominio.es
The authenticity of host 'servidor.dominio.es (198.145.0.1)' can't be established.
RSA key fingerprint is 97:4f:66:f5:96:ba:6d:b2:ef:65:35:45:18:0d:cc:29.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'servidor.dominio.es' (RSA) to the list of known hosts.
usuario1@servidor.dominio.es's password:[usuario1@servidor.dominio.es usuario1]$

SCP

Otro comando que merece la pena conocer, porque permite mover y copiar ficheros y archivos entre dos equipos. Es importante destacar que utiliza SSH para transmitir la información, de forma que ésta viaja encriptada para ofrecer la máxima seguridad.
 
La ejecución de SCP puede tomar la siguiente forma. 

[usuario1@localhost]scp /tmp/file usuario1@servidor.dominio.es:/tmp

Otros comandos SSH

A continuación os mostramos otros de los comandos SSH más frecuentes.
  • pwd: muestra el path completo del directorio en el que se encuentre el usuario.
  • cd ~: uno de los comandos más utilizados ya que agiliza y facilita en gran medida la ejecución de las tareas; permite regresar al directorio de inicio.
  • cd -: gracias a este comando los usuarios pueden ir al último directorio en el que se encontraron.
  • ls -aR: este comando muestra el listado completo de archivos e información, incluyendo todos los subdirectorios.
  • nano /home/usuario/public_html/index.html: este comando SSH permite editar el archivo index.html con el editor nano.
  • touch /home/usuario/public_html/404.html: se utiliza para crear el archivo vacío 404.html en un determinado directorio.
  • mkdir descargas: este comando está destinado a la creación de un directorio denominado descargas.
  • unzip archivo.zip: un comando SSH dirigido a la descomprensión del archivo .zip.
  • du -sh: un comando que resulta de gran utilidad ya que muestra el espacio total ocupado por el directorio en el que se encuentra el usuario.
  • du -hs * | sort -h: este comando muestra el espacio que ocupa cada archivo y directorio, ordenado por tamaño.
  • whoami: uno de los comandos SSH más sencillos ya que permite a los usuarios conocer cuál es su nombre de usuario.
A modo de conclusión, destacar el concepto de SSH: un protocolo basado en la arquitectura entre el cliente el servidor. Sirve para establecer una conexión segura con un PC remoto a través de Internet. Todos los datos viajan encriptados, de forma que ofrece la máxima seguridad a las compañías, las cuales en muchas ocasiones trabajan con información sensible.
 
En Axarnet podemos ofrecer una gran selección de servicios, como los servidores de alojamiento web Linux. El alojamiento web que te ofrecemos se encuentra en servidores físicos ubicados en España, proporcionando un acceso muy veloz y seguro. También servidores VPS Administrados para Windows o Linux. Diferentes planes que se adaptan a todo tipo de necesidades y presupuestos.
About the Author

Comparte esta página: