Configurar las claves SSH
Acerca de las claves SSH
Las claves SSH proporcionan una forma más segura de iniciar sesión en un servidor privado con SSH que usar una contraseña sola. Mientras que una contraseña puede ser agrietada con un ataque de fuerza bruta, las llaves SSH son casi imposibles de descifrar por la fuerza bruta sola. Generar un par de claves le proporciona dos largas cadenas de caracteres: una clave pública y una privada. Puede colocar la clave pública en cualquier servidor y, a continuación, desbloquearlo conectándolo con un cliente que ya tiene la clave privada. Cuando los dos coinciden, el sistema se desbloquea sin necesidad de una contraseña. Puede aumentar la seguridad aún más protegiendo la clave privada con una contraseña.
Paso 1. Crear el Par de Claves RSA
El primer paso es crear el par de claves en la máquina cliente (existe una buena probabilidad de que ésta sea su computadora):
ssh-keygen -t rsa
Paso 2. Guarde las Llaves y la Frase de Contraseña
Una vez que haya ingresado el comando Gen Key, obtendrá algunas preguntas más:
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Puede presionar Intro aquí, guardando el archivo en la casa del usuario (en este caso, mi ejemplo de usuario se llama demo).
Enter passphrase (empty for no passphrase):
Depende de usted si desea utilizar una contraseña. Introducir una frase de contraseña tiene sus ventajas: la seguridad de una clave, no importa cuán cifrado sea, todavía depende del hecho de que no es visible para nadie más. En caso de que una clave privada protegida por contraseña se encuentre en posesión de un usuario no autorizado, no podrán iniciar sesión en sus cuentas asociadas hasta que descubran la contraseña, comprando al usuario hackeado un tiempo extra. El único inconveniente, por supuesto, de tener una frase de contraseña, es tener que escribirlo cada vez que utilice el par de claves.
Todo el proceso de generación de claves se ve así:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
| .oo. |
| . o.E |
| + . o |
| . = = . |
| = S = . |
| o + = + |
| . o + o . |
| . o |
| |
+-----------------+
La clave pública se encuentra ahora en /home/demo/.ssh/id_rsa.pub La clave privada (identificación) ahora se encuentra en /home/demo/.ssh/id_rsa
Paso 3. Copiar la Clave Pública
Una vez que se genera el par de claves, es hora de colocar la clave pública en el servidor que queremos usar.
Puede copiar la clave pública en el archivo authorized_keys de la nueva computadora con el comando ssh-copy-id. Asegúrese de reemplazar el ejemplo de nombre de usuario y dirección IP a continuación.
ssh-copy-id Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Alternativamente, puede pegar las claves con SSH:
cat ~/.ssh/id_rsa.pub | ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
No importa el comando que haya elegido, debería ver algo como:
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.'s password:
Now try logging into the machine, with "ssh 'Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.'", and check in:
~/.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
Ahora puede seguir adelante y entrar en Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. y no se le pedirá una contraseña. Sin embargo, si establece una frase de contraseña, se le pedirá que ingrese la frase de contraseña en ese momento (y cada vez que inicie sesión en el futuro).
Paso 4. Deshabilitar la Contraseña para el Inicio de Sesión Root (Opcional)
Una vez que haya copiado sus claves SSH en su servidor y asegurarse de que puede iniciar sesión con las claves SSH solo , puede seguir adelante y restringir el inicio de sesión de root para que sólo se permite a través de claves SSH.
Para ello, abra el archivo de configuración SSH:
sudo nano /etc/ssh/sshd_config
Dentro de ese archivo, busque la línea que incluye PermitRootLogin
y PermitRootLogin
para asegurarse de que los usuarios sólo pueden conectarse con su clave SSH:
PermitRootLogin without-password
Poner los cambios en efecto:
reload ssh
A continuación, al crear un nuevo VPS, puede optar por incluir esa clave pública en el servidor. No se te enviará una contraseña de root y podrás iniciar sesión en tu nuevo servidor privado desde tu cliente elegido. Si creó una frase de contraseña, se le pedirá que la ingrese al iniciar sesión.
Conclución
Ahora que tienes mayor conocimiento acerca del SSH, podras generar tus propias contraseñas tanto públicas como privadas e implementar mayor seguridad a tu servidor Linux.
Fuente. Artículo traducido y con muy ligeras modificaciones de: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-debian