Configuración de SSH en Ubuntu

Configuración de SSH en Ubuntu

La tecnología SSH (Secure Shell) permite el control remoto seguro de su ordenador a través de una conexión segura. SSH encripta todos los archivos transmitidos, incluidas las contraseñas, y transmite absolutamente cualquier protocolo de red. Para el correcto funcionamiento de esta herramienta es necesario no sólo instalarla, sino también configurarla. Es la configuración principal de la que queremos hablar en este artículo, tomando como ejemplo la última versión del sistema operativo Ubuntu que va a alojar el servidor.

Configuración de SSH en Ubuntu

Si todavía no has hecho la instalación en el servidor y en los ordenadores cliente, deberías hacerlo primero, afortunadamente todo el procedimiento es bastante sencillo y no lleva mucho tiempo. Para un tutorial detallado sobre este tema, consulte nuestro otro artículo en el siguiente enlace. Allí también verás el procedimiento para editar el archivo de configuración y probar la funcionalidad de SSH, así que hoy nos centraremos en tareas ligeramente diferentes.

Leer más: Instalación del servidor SSH en Ubuntu

Creación de un par de claves RSA

El SSH recién instalado aún no tiene ninguna clave configurada para realizar conexiones del servidor al cliente y viceversa. Todos estos parámetros deben configurarse manualmente justo después de añadir todos los componentes del protocolo. El par de claves funciona mediante el algoritmo RSA (abreviatura de los nombres de los desarrolladores Rivest, Shamir y Adleman). Gracias a este criptosistema, las claves se cifran mediante algoritmos especiales. Para crear un par de claves públicas, basta con introducir los comandos correspondientes en la consola y seguir las instrucciones.

  1. Ir a trabajar con «Terminal». por cualquier método conveniente, por ejemplo, abriéndolo mediante un menú o una combinación de teclas Ctrl + Alt + T.
  2. Introduzca el comando ssh-keygeny a continuación pulse la tecla Entre en.
  3. Se le pedirá que cree un archivo para guardar las claves. Si desea dejarlos en su ubicación predeterminada, sólo tiene que hacer clic en Entre en.
  4. La clave pública puede estar protegida por una frase de contraseña. Si desea utilizar esta opción, introduzca la contraseña en la línea que aparece. Los caracteres que introduzca no se mostrarán. Deberá repetirlo en una nueva línea.
  5. A continuación, verá una notificación de que la clave se ha guardado, y también podrá ver una representación gráfica aleatoria de la clave.

Ahora se ha creado un par de claves, una clave secreta y una clave pública, que se utilizarán para la posterior conexión entre ordenadores. Lo único que hay que hacer es colocar la clave en el servidor para que la autenticación SSH tenga éxito.

Copiar la clave pública en el servidor

Hay tres métodos para copiar llaves. Cada uno de ellos será mejor en diferentes situaciones en las que, por ejemplo, uno de los métodos no funcione o no sea adecuado para un usuario concreto. Sugerimos estudiar las tres opciones, empezando por la más sencilla y eficaz.

Opción 1: El comando ssh-copy-id

Comando ssh-copy-id está integrado en el sistema operativo, por lo que no es necesario instalar ningún componente adicional para ejecutarlo. Siga la sencilla sintaxis para copiar la clave. В «Terminal». necesita introducir ssh-copy-id username@remote_hostdonde nombre_de_usuario_remote_host – es el nombre del ordenador remoto.

La primera vez que te conectes, recibirás una notificación en texto:

The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Tiene que especificar una opción para continuar la conexión. Después de esto, la utilidad buscará la clave por sí misma en forma de archivo id_rsa.pubque se creó anteriormente. Si se encuentra con éxito, se mostrará este resultado:

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:

Especifique la contraseña del host remoto para que la utilidad pueda entrar en él. La herramienta copiará los datos del archivo de clave pública ~/.ssh/id_rsa.puby entonces aparecerá un mensaje en la pantalla:

Number of key(s) added: 1

Ahora intenta entrar en la máquina, con: «ssh ‘[email protected]′»
y compruebe que sólo se ha añadido la(s) llave(s) que quería.

La aparición de este texto significa que la clave se ha cargado con éxito en el ordenador remoto, y ahora no habrá problemas de conexión.

Opción 2: Copiar una clave pública a través de SSH

Si no puede utilizar la utilidad anterior, pero tiene una contraseña para iniciar sesión en el servidor SSH remoto, puede descargar su clave de usuario manualmente, garantizando así una autenticación más estable al conectarse. Para ello, utilice el comando gatoque leerá los datos del archivo y los enviará al servidor. En la consola tendrá que introducir la cadena

cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys".

Cuando aparezca el mensaje.

The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

proceda a la conexión e introduzca la contraseña para iniciar la sesión en el servidor. La clave pública se copia automáticamente al final del archivo de configuración llaves_autorizadas.

Opción 3: Copiar manualmente la clave pública

Si no hay acceso al ordenador remoto a través del servidor SSH, todos los pasos anteriores se realizan manualmente. Para ello, primero hay que averiguar la información de la llave en el PC servidor mediante el comando cat ~/.ssh/id_rsa.pub.

La pantalla mostrará una línea como ésta: ssh-rsa + ключ в виде набора символов== demo@test. A continuación, ir a trabajar en el dispositivo remoto, donde se crea un nuevo directorio a través de mkdir -p ~/.ssh. En este directorio se crea adicionalmente un archivo authorized_keys. A continuación, inserte allí la clave que aprendió antes a través de echo + строка публичного ключа >> ~/.ssh/authorized_keys. A continuación, puede intentar autenticarse con el servidor sin utilizar contraseñas.

Autenticación en el servidor a través de la clave creada

En la sección anterior, conociste tres métodos para copiar la clave del ordenador remoto en el servidor. Estas acciones le permitirán conectarse sin utilizar una contraseña. Este procedimiento se realiza a través de la línea de comandos introduciendo shh ssh username@remote_hostdonde nombre_de_usuario_remote_host – nombre de usuario y host del ordenador deseado. La primera vez que se conecte, se le notificará que hay una conexión desconocida y podrá proceder seleccionando .

La conexión se producirá automáticamente si no se ha especificado una frase de contraseña durante la creación del par de claves. De lo contrario, tendrá que introducirlo primero para poder continuar con SSH.

Desactivar la autenticación de la contraseña

Se considera que la configuración de una copia de la llave se ha realizado con éxito cuando es posible iniciar la sesión en el servidor sin utilizar una contraseña. Sin embargo, poder autenticarse de esta manera permite a los atacantes utilizar herramientas de minería de contraseñas para comprometer una conexión segura. Para protegerse de estos casos, puede desactivar la autenticación por contraseña en el archivo de configuración de SSH. Esto requerirá:

  1. В «Terminal». abrir el archivo de configuración a través del editor utilizando el comando sudo gedit /etc/ssh/sshd_config.
  2. Encuentra la línea. «PasswordAuthentication» y quitar el cartel # al principio para descomentar el parámetro.
  3. Cambia el valor a no y guardar la configuración actual.
  4. Cierre el editor y reinicie el servidor. sudo systemctl restart ssh.

La autenticación por contraseña se deshabilitará y sólo se podrá acceder al servidor utilizando claves de algoritmo RSA creadas específicamente para este fin.

Configurar el cortafuegos por defecto

En Ubuntu, la protección de red por defecto es el Firewall sin complicaciones (UFW). Esto le permite permitir las conexiones a los servicios seleccionados. Cada aplicación crea su propio perfil en esta herramienta, y UFW lo gestiona permitiendo o denegando las conexiones. Para configurar un perfil SSH añadiéndolo a la lista, haga lo siguiente

  1. Abra la lista de perfiles del cortafuegos mediante el comando sudo ufw app list.
  2. Introduzca la contraseña de la cuenta para mostrar la información.
  3. Verá una lista de aplicaciones disponibles, OpenSSH debería estar entre ellas.
  4. Ahora tenemos que permitir las conexiones a través de SSH. Para ello, añádalo a la lista de perfiles permitidos mediante sudo ufw allow OpenSSH.
  5. Habilite el cortafuegos actualizando las reglas, sudo ufw enable.
  6. Para garantizar que se permiten las conexiones, es necesario prescribir sudo ufw statusy entonces verá el estado de la red.

Esto concluye nuestras instrucciones para configurar SSH en Ubuntu. Los demás ajustes del archivo de configuración y otros parámetros los realiza personalmente cada usuario según sus necesidades. Puedes leer la documentación oficial del protocolo para saber cómo funcionan todos los componentes de SSH.

Nos alegramos de que hayamos podido ayudarle con su problema.

Describa lo que no le ha funcionado.
Nuestros especialistas tratarán de responder con la mayor rapidez posible.

¿Le ha ayudado este artículo?