Cómo configurar y usar SSH en Linux

Si has estado utilizando Linux durante algún tiempo, sin duda has oído hablar de una herramienta conocida como SSH. Secure Shell, comúnmente conocido como SSH, es un protocolo de red para establecer conexiones seguras entre un cliente y un servidor remoto. Está diseñado para permitir a los usuarios iniciar sesión de manera segura en varios tipos diferentes de computadoras de forma remota a través de una red. Aquí te mostramos cómo configurar y copiar las claves SSH a tu servidor fácilmente.
También lee: Cómo mostrar todas las conexiones SSH activas en Linux
Instalando SSH
Para comenzar, tenemos que instalar el servidor SSH. Puedes encontrar e instalar el paquete openssh-server en el Centro de Software o en tu gestor de paquetes. Alternativamente, si estás en un servidor (o simplemente prefieres usar la terminal), abre una terminal y escribe el siguiente comando:
# Ubuntu/Debian
sudo apt install openssh-server
# Fedora/CentOS/REHL
sudo dnf install openssh-server
También lee: Cómo crear un honeypot SSH para atrapar hackers en tu servidor Linux
Habilitar SSH en Linux
Una vez que se ha instalado el servidor OpenSSH en tu máquina, necesitarás iniciar y habilitar la unidad systemd. Para hacer eso, simplemente puedes escribir el siguiente comando en la terminal:
sudo systemctl enable --now ssh
Bueno saber: puedes conectar programas en Linux usando tuberías SSH.
Generando claves SSH
Una vez que hayas instalado el servidor openssh, puedes comenzar a generar pares de claves SSH. Antes de continuar, asegúrate de que no tienes un par de claves existente, ya que este proceso sobrescribirá el existente.
Para verificar si tienes un par de claves existente, usa el comando:
ls -la ~/.sshSi tienes un par de claves existente, el comando anterior debería mostrar los archivos “id_rsa” y “id_rsa.pub”.

Una vez que verifiques que no tienes un par de claves SSH existente, puedes proceder a generar uno nuevo. De lo contrario, haz una copia de seguridad de tus claves antiguas para evitar perderlas.
Para generar una nueva clave, usa el comando:
ssh-keygen -t rsa -b 4096El comando anterior invoca la utilidad ssh-keygen para generar de forma interactiva un par de claves SSH. Usando la opción -t, especificamos el tipo de clave a generar. En este caso, generamos una clave RSA.
También usamos la opción -b para especificar el número de bits en la clave. Si usas una clave RSA, el tamaño mínimo de los bits es 1024. Si no se especifica, generará la clave con 3072 bits.

Es bueno usar la ubicación predeterminada para almacenar las claves SSH para evitar tener que escribir la ruta al conectarte a SSH usando las claves.
Si no deseas encriptar tu clave con una frase de paso, presiona Enter para omitir.
Copiar clave al servidor remoto
Ahora que hemos generado un nuevo par de claves SSH, necesitamos cargarlo en la máquina remota que queremos administrar.
La forma más eficiente de hacerlo es usar el comando ssh-copy-id. Usa el comando como:
ssh-copy-id usuario_remoto@ip_remotaSi estás usando un archivo de clave con un nombre de archivo separado, puedes usar el siguiente comando para especificar la ruta al archivo de clave.
ssh-copy-id -i ~/.ssh/id_rsa usuario_remoto@ip_remotaSi estás iniciando sesión en la máquina remota por primera vez, necesitarás aceptar la huella digital.
A continuación, ingresa la contraseña SSH para el usuario remoto.
Una vez autenticado, el comando ssh-copy-id añadirá el contenido de tu clave id_rsa.pub al archivo “~/.ssh/authorized_keys” en la máquina remota y cerrará la conexión.

Iniciar sesión en la máquina remota
Una vez que hayas completado exitosamente todos los pasos anteriores, ahora puedes iniciar sesión en el servidor remoto sin necesidad de una contraseña.
Puedes probar esto utilizando el comando:
ssh usuario_remoto@ip_remotaA menos que tengas habilitada una frase de paso para tu clave, iniciarás sesión automáticamente.
Preguntas frecuentes
1. ¿Es seguro SSH?
SSH es una herramienta de seguridad poderosa que permite a los usuarios autenticados iniciar sesión en un sistema remoto. Sin embargo, solo es tan seguro como su archivo de configuración lo permita. Un servidor SSH no configurado o mal configurado puede ser vulnerable a hackers y accesos de terceros. Asegúrate de asegurar la configuración de SSH justo después de instalarlo.
2. ¿Dónde están las claves autorizadas de SSH?
El archivo authorized_keys de SSH contiene la clave pública de cada usuario y especifica qué usuarios tienen permiso para iniciar sesión en un servidor. En Linux, el archivo authorized_keys generalmente se encuentra en la carpeta “.ssh” en el directorio principal del usuario.
3. ¿Cómo puedo solucionar el problema de permisos denegados al usar ssh-copy-id?
Esto solo sucede cuando ya tienes una clave pública configurada en tu servidor remoto y has deshabilitado la autenticación por contraseña. Para solucionar este problema, primero inicia sesión en tu servidor, habilita la autenticación por contraseña en el archivo “/etc/ssh/sshd_config”, luego ejecuta el comando ssh-copy-id nuevamente.
Una vez que hayas copiado el nuevo archivo de clave, recuerda deshabilitar la opción de autenticación por contraseña nuevamente.