Select Page

Introducción

SSH, o blindaje seguro (protected shell) es un protocolo encriptado para administrar y comunicarse con servidores. Al trabajar con servidores Ubuntu, generalmente pasarás los angeles mayor parte del tiempo conectado mediante SSH desde una terminal a tu servidor.

En esta guía, nos enfocaremos en configurar las llaves SSH sobre una instalación de Ubuntu Vanilla 18.04. Las llaves SSH proveen una autenticación fácil y segura para tu servidor, esta autenticación es los angeles recomendada para todos los usuarios.

Paso 1 — Crea un par de llaves RSA

El primer paso consiste en crear un par de llaves en los angeles máquina cliente (usualmente tu computador):

De manera predeterminada, ssh-keygen creará un par de llaves RSA de 2.048 bits, lo cual es suficientemente seguro en los angeles mayoría de casos (opcionalmente se podría adicionar el parámetro -b 4096 para crear una llave de 4.096 bits).

Después del comando, se debería desplegar los angeles siguiente salida:

Output

Producing public/personal rsa key pair. Input record wherein to save lots of the important thing (/your_home/.ssh/id_rsa):

Presione los angeles tecla Input para guardar el par de llaves en el subdirectorio .ssh/ del directorio native del usuario, también se puede especificar una ruta alterna a ésta.

Si se han generado previamente un par de llaves SSH, deberías ver los angeles siguiente información:

Output

/house/your_home/.ssh/id_rsa already exists. Overwrite (y/n)?

Si se escoge sobreescribir los angeles llave en disco, no podrás autenticarte usando las llaves previas de ahora en adelante. Sé muy cuidadoso al seleccionar los angeles opción positiva (y), ya que éste es un proceso destructivo de las llaves que no puede ser reversado.

Debería desplegarse lo siguiente en los angeles línea de comandos:

Output

Input passphrase (empty for no passphrase):

En este punto se puede introducir una frase segura que sirva como contraseña, lo cual es altamente recomendado. Esta frase adicionará una capa additional de seguridad para prevenir los angeles autenticación de usuarios no autorizados. Para aprender más sobre seguridad, consulta nuestro educational sobre cómo configurar la autenticación mediante llaves SSH en un servidor Linux.

A continuación, deberías ver los angeles siguiente salida:

Output

Your identity has been stored in /your_home/.ssh/id_rsa. Your public key has been stored in /your_home/.ssh/id_rsa.pub. The important thing fingerprint is: a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host The important thing's randomart symbol is: +--[ RSA 2048]----+ | ..o | | E o= . | | o. o | | .. | | ..S | | o o. | | =o.+. | |. =++.. | |o=++. | +-----------------+

Ahora ya existe una llave pública y una privada que puedes usar en el proceso de autenticación. El siguiente paso será colocar los angeles llave pública en tu servidor, de tal manera que los angeles puedas usar para acceder a él, mediante una autenticación basada en llaves SSH.

Paso 2 — Copia los angeles llave pública en el servidor Ubuntu

Los angeles manera más rápida de copiar tu llave pública en el servidor Ubuntu es mediante el uso de una utilidad llamada ssh-copy-id. Gracias a su simplicidad, de estar disponible es un método altamente recomendado. En caso de que ssh-copy-id no se encuentre disponible en tu máquina cliente, aún puedes usar uno de los dos métodos que se proveen en esta sección: copiado de una contraseña usando SSH, o el copiado guide de los angeles llave.

Copia de los angeles llave pública usando ssh-copy-id

Los angeles herramienta ssh-copy-id se encuentra incluida de manera predeterminada en varios sistemas operativos, por lo cual existe los angeles posibilidad que esté disponible en tu sistema native. Para que este método funcione es necesario que ya se cuente con acceso por contraseña mediante SSH dentro de tu servidor.

Para usar este método, simplemente se debe especificar el servidor remoto al cual te quieres conectar, así como los angeles cuenta de usuario y su contraseña con acceso SSH. Esta cuenta es a los angeles cual se copiará tu llave SSH pública.

Los angeles sintaxis es:

  • ssh-copy-id username@remote_host

Se te podría desplegar el siguiente mensaje:

Output

The authenticity of host '203.0.113.1 (203.0.113.1)' cannot be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:advert:d6:6d:22:fe. Are you positive you need to proceed connecting (sure/no)? sure

Esto significa que tu computador native no reconoce el cliente remoto. Esto sucede los angeles primera vez que te conectas a una nueva máquina. Digita “yes” y presiona Input para continuar.

A continuación, los angeles utilidad escaneará tu cuenta native en búsqueda de los angeles llave id_rsa.pub creada previamente. Cuando los angeles llave es creada, se te solicitará los angeles contraseña para los angeles cuenta del usuario remoto:

Output

/usr/bin/ssh-copy-id: INFO: making an attempt to log in with the brand new key(s), to filter any which can be already put in /usr/bin/ssh-copy-id: INFO: 1 key(s) stay to be put in -- in case you are induced now it's to put in the brand new keys username@203.0.113.1's password:

Digita los angeles contraseña (lo digitado no será mostrado en pantalla por razones de seguridad), y presiona Input. Los angeles utilidad se conectará a los angeles cuenta en los angeles máquina remota usando los angeles contraseña que proveíste. Esto copiará el contenido de tu llave ~/.ssh/id_rsa.pub en el archivo que se encuentra en el directorio native de los angeles cuenta remota ~/.ssh llamado authorized_keys.

Se te debería desplegar los angeles siguiente salida:

Output

Choice of key(s) added: 1 Now take a look at logging into the device, with: "ssh 'username@203.0.113.1'" and test to be sure that best the important thing(s) you sought after had been added.

Para este momento tu llave id_rsa.pub ha sido cargada en los angeles cuenta remota. Puedes continuar al paso 3.

Copia de los angeles llave pública usando SSH

Si no se tiene ssh-copy-id disponible, pero cuentas con acceso al servidor mediante una contraseña que u.s. SSH, puedes cargar tus llaves utilizando un método SSH convencional.

Esto se puede realizar usando el comando cat para leer el contenido de los angeles llave pública SSH en tu computador native y enviarlo a través de una conexión SSH al servidor remoto.

De otro lado, debemos asegurar que el directorio ~/.ssh exista y que tenga los permisos adecuados dentro de los angeles cuenta que se está usando.

Podemos direccionar el contenido enviado a un archivo llamado authorized_keys dentro de este directorio. Usaremos el símbolo de redirección >> para adicionar el contenido sin reescribirlo, lo que nos permitirá adicionar llaves nuevas sin destruir las adicionadas previamente.

El comando completo lucirá como lo siguiente:

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

Se podría desplegar el siguiente mensaje:

Output

The authenticity of host '203.0.113.1 (203.0.113.1)' cannot be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:advert:d6:6d:22:fe. Are you positive you need to proceed connecting (sure/no)? sure

Esto significa que el computador native no reconoce al remoto. Esto sucede los angeles primera vez que se conecta a una máquina remota. Digita “yes” y presiona Input para continuar.

En este momento, se te solicitará que introduzcas los angeles contraseña de los angeles cuenta del usuario remoto:

Output

username@203.0.113.1's password:

Después de ingresar los angeles contraseña, el contenido de los angeles llave id_rsa.pub habrá sido copiada al ultimate del archivo authorized_keys en los angeles cuenta del usuario remoto. Puedes continuar con el paso 3 si esto se llevó a cabo de manera exitosa.

Copia guide de los angeles llave pública

Si no se cuenta con un acceso al servidor mediante contraseña SSH, puedes completar el proceso de forma guide.

Adicionaremos manualmente el contenido del archivo id_rsa.pub al archivo ~/.ssh/authorized_keys en los angeles máquina remota.

Para desplegar el contenido de los angeles llave id_rsa.pub, digita lo siguiente en los angeles máquina native:

Verás el contenido de los angeles llave, que debería ser identical a algo como lo siguiente:

Output

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@check

Accede al computador remoto usando cualquier método que tengas disponible. Una vez hayas accedido, debes asegurarte que el directorio ~/.ssh exista. De no ser así, lo puedes crear con el siguiente comando:

Ahora, se puede modificar, o incluso crear, el archivo authorized_keys dentro de este directorio. Puedes adicionar el contenido del archivo id_rsa.pub al ultimate de archivo authorized_keys, o crearlo de ser necesario, mediante el comando:

  • echo public_key_string >> ~/.ssh/authorized_keys

En el anterior comando, sustituye public_key_string con los angeles salida que habías obtenido del comando cat ~/.ssh/id_rsa.pub que ya habías ejecutado en los angeles máquina native. Éste debería comenzar con ssh-rsa AAAA....

Finalmente, nos aseguraremos que el directorio ~/.ssh y el archivo authorized_keys tengan los permisos correctos:

Esto remueve recursivamente todos los permisos dados a grupos “group” y a otros “other” en el directorio ~/.ssh/.

En caso que hayas utilizado los angeles cuenta root para configurar las llaves de una cuenta de usuario, también es importante que el directorio ~/.ssh pertenezca a este usuario y no al root:

  • chown -R sammy:sammy ~/.ssh

En este educational nuestro usuario es llamado sammy, en el comando anterior, debes sustituirlo por el nombre de usuario apropiado.

Ahora ya estamos listos para intentar los angeles autenticación sin contraseña en nuestro servidor Ubuntu.

Paso 3 — Autentícate en un servidor Ubuntu usando llaves SSH

Si ya has completado satisfactoriamente uno de los procesos anteriores, ya deberías estar habilitada para autenticarte sin necesidad de los angeles contraseña de los angeles cuenta remota.

El proceso básico es el mismo:

Si es los angeles primera vez que se intenta los angeles conexión con esta máquina (y, por ejemplo, usaste el último método de los angeles sección anterior), quizás se despliegue algo identical a lo siguiente:

Output

The authenticity of host '203.0.113.1 (203.0.113.1)' cannot be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:advert:d6:6d:22:fe. Are you positive you need to proceed connecting (sure/no)? sure

Esto significaría que el computador native no reconoce los angeles máquina remota. Digita “yes” y presiona Input para continuar.

Si no proveiste una frase segura, se te autenticará de inmediato. En el caso que sí hayas ingresado una en el momento de creación de los angeles llave, se te solicitará en este momento (notarás que por motivos de seguridad no se imprimirán los caracteres en los angeles sesión de terminal). Después de los angeles autenticación, un sesión segura se te debería desplegar, configurada con los angeles cuenta del servidor Ubuntu.

Si los angeles autenticación mediante llave fue exitosa, continúa aprendiendo cómo mejorar los angeles seguridad de tu sistema deshabilitando los angeles autenticación por contraseña.

Paso 4 — Deshabilita en tu servidor los angeles autenticación por contraseña

Si tu sistema ya puede ser accedido mediante SSH sin una contraseña de usuario, ya has configurado de manera exitosa los angeles autenticación mediante llave SSH en tu cuenta. Sin embargo, el mecanismo de autenticación mediante contraseña de usuarios sigue activo, lo cual significa que tu servidor aún se encuentra expuesto a posibles ataques de fuerza bruta.

Antes de completar las indicaciones de esta sección, debes asegurarte de tener, o bien, configurada los angeles autenticación de los angeles cuenta de superusuario mediante llave SSH, o preferiblemente, los angeles autenticación mediante SSH configurada para una cuenta diferente a los angeles de superusuario con privilegios de sudo. Este paso restringirá los accesos mediante contraseña, por lo cual es a very powerful que te asegures de tener keep an eye on administrativo de tu servidor.

Tan pronto confirmes que tu cuenta remota cuenta con privilegios administrativos, accede al servidor remoto utilizando las llaves SSH, ya sea como superusuario o con una cuenta con privilegios de sudo. Después, abre el archivo de configuración del demonio SSH:

  • sudo nano /and so forth/ssh/sshd_config

Dentro del archivo, busca los angeles directiva llamada PasswordAuthentication. Ésta podría estar en comentario. Si lo está, retira el marcador de comentario sobre esa línea y fija el valor en “no”. Esto deshabilitará los angeles posibilidad de conectarse mediante SSH usando los angeles contraseña de una cuenta:

/and so forth/ssh/sshd_config

...
PasswordAuthentication no
...

Salva y cierra el archivo cuando hayas terminado digitando CTRL + X, después Y para confirmar salvar el archivo, y finalmente Input para salir del editor nano. Ahora, para implementar los cambios, debemos reiniciar el servicio sshd:

  • sudo systemctl restart ssh

Como precaución, abre una nueva ventana de los angeles terminal y verifica que el servicio de SSH se encuentre funcionando correctamente antes de cerrar esta sesión:

Una vez hayas verificado tu servicio SSH, puedes cerrar de manera segura todas las sesiones actuales del servidor.

Ahora, el demonio SSH solo responderá a llaves SSH. Autenticación mediante contraseña de usuarios habrá sido deshabilitada exitosamente.

Conclusión

Para este momento ya deberías haber configurado en tu servidor, los angeles autenticación mediante llaves SSH, habilitándote a acceder sin proveer una contraseña de una cuenta.

Si quieres aprender más acerca de trabajar con SSH, puedes usar nuestra guía esencial de SSH.