SSH o Secure Shell es un protocolo (y el nombre del programa que lo implementa) cuya finalidad es conectar a un servidor de forma segura, encriptando la información, para administrarlo remotamente.

El protocolo y las aplicaciones que lo manejan, pueden ser terminales tanto de Mac, Windows como Linux

La forma que proponemos para que te sea más fácil y seguro trabajar remotamente con SSH, es mediante claves RSA, un sistema criptográfico de claves públicas que nos permitirá conectar al servidor sin usar contraseñas.

Para ello seguiremos los siguientes pasos:

  • Instalar el servicio SSH en el Servidor.

  • Modificar el puerto para acceder al Servidor mediante SSH.

  • Crear el conjunto de claves RSA en el cliente.

  • Copiar la clave creada en el Cliente al Servidor.

  • Conectar al servidor mediante SSH.

Instalar el servicio SSH en el Servidor

La mayoría de servidores en Linux traen instalado por defecto SSH, pero si no es el caso, o queréis administrar remotamente un equipo mediante este protocolo, debéis instalar el paquete. Lo más fácil, en los Debian y sus derivados es instalar OpenSSH con la siguiente instrucción desde la consola:

sudo apt install openssh

Modificar el puerto para acceder al Servidor mediante SSH

Una vez instalado el paquete OpenSSH, y por seguridad, deberíamos cambiar el puerto por el que vamos a acceder a dicho servidor, por defecto está activo el puerto 22, nosotros lo cambiaremos a cualquier otro que esté libre, por ejemplo el 4555, de esta forma le agregaremos más seguridad al servidor, y lo haremos con la siguiente sentencia en el terminal del equipo servidor:

sudo nano /etc/ssh/sshd_config

Una vez dentro del editor, quitamos la # en #Port 22 para habilitar la opción y cambiamos el 22 por el puerto que hemos decidido, en el ejemplo el 4555, quedando la línea así:

Crear el conjunto de claves RSA en el cliente

Para evitar tener que escribir contraseñas y agregar seguridad a nuestra conexión, procedemos a crear la clave pública que luego copiaremos al servidor, escribimos en el terminal

ssh-keygen -t rsa -b 4096

Le podemos dar a todas las opciones por defecto o rellenar lo que nos pida, por ejemplo el lugar dónde almacenar las claves o una frase secreta que se usará para la encriptación, en definitiva tiene que quedar algo así:

Copiar la clave creada en el Cliente, al Servidor

Ya hemos creado la clave en el equipo Cliente, el que vamos a utilizar para acceder al Servidor, así que nos queda copiar esa clave al servidor, y lo haremos con una sencilla orden que de forma general queda

ssh-copy-id -p puerto usuario@dominio/ip

Si tomamos como ejemplo que la ip del servidor en nuestra red es 192.168.0.50, que el nombre del administrador o del usuario con el que accederemos en el servidor es user1 y que el puerto tal como hemos mostrado en el ejemplo es el 4555, la línea quedaría tal que así:

ssh-copy-id -p 4555 user1@192.168.0.50

Al ejecutar la orden en el terminal nos preguntará un par de cosillas como confirmar el tipo de acceso y l contraseña del usuario con el que estamos ingresando (debe tener permisos en el servidor, si es el administrador no hay problema, aunque por seguridad debería ser otro usuario, aconsejable que pertenezca al grupo de SUDO).

Conectar al servidor mediante SSH

Ja solo nos queda acceder desde el cliente al servidor, la sintaxis, siguiendo el ejemplo empleado hasta ahora sería:

ssh -p 4555 user1@192.168.0.50

Una ejemplo de una conexión real, podría quedar como la siguiente, teniendo en cuenta, que en la imagen se ha incluido el programa neofetch al bash del servidor, para mostrar algunas características del mismo al abrirlo y se trata de un equipo con Ubuntu Server en una raspberry, el cual se administra remotamente.

Esperamos que os haya servidor y le saquéis provecho.