Acerca de las claves SSH
Las claves SSH brindan una forma más segura de iniciar sesión en un servidor privado virtual con SSH que usar solo una contraseña. Si bien una contraseña puede eventualmente descifrarse con un ataque de fuerza bruta, las claves SSH son casi imposibles de descifrar solo por fuerza bruta. La generación de un par de claves le proporciona dos largas cadenas de caracteres:una clave pública y otra privada. Puede colocar la clave pública en cualquier servidor y luego desbloquearla conectándose 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 aún más la seguridad si protege la clave privada con una frase de contraseña.
Esta guía fue escrita principalmente por la gente de DigitalOcean. Echa un vistazo a sus excelentes opciones de servidor rentables en digitalocean.com
Paso uno:cree el par de claves RSA
El primer paso es crear el par de claves en la máquina cliente (existe una buena posibilidad de que esta sea solo su computadora):
ssh-keygen -t rsa
Paso dos:almacenar las claves y la frase de contraseña
Una vez que haya ingresado el comando Gen Key, recibirá algunas preguntas más:
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Puede presionar enter aquí, guardando el archivo en la página de inicio del usuario (en este caso, mi usuario de ejemplo se llama demo).
Enter passphrase (empty for no passphrase):
Depende de usted si desea utilizar una frase de contraseña. Ingresar una frase de contraseña tiene sus beneficios:la seguridad de una clave, sin importar cuán encriptada, aún depende del hecho de que nadie más la vea. Si una clave privada protegida con una frase de contraseña cae en posesión de un usuario no autorizado, no podrá iniciar sesión en sus cuentas asociadas hasta que descubra la frase de contraseña, lo que le dará al usuario pirateado algo de tiempo extra. El único inconveniente, por supuesto, de tener una frase de contraseña es tener que escribirla cada vez que usa 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 ahora se encuentra en /home/demo/.ssh/id_rsa.pub La clave privada (identificación) ahora se encuentra en /home/demo/.ssh/id_rsa
Paso tres: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 virtual que queremos usar.
Puede copiar la clave pública en el archivo authorized_keys de la nueva máquina con el comando ssh-copy-id. Asegúrese de reemplazar el nombre de usuario y la dirección IP de ejemplo a continuación.
ssh-copy-id [email protected]
Alternativamente, puede pegar las claves usando SSH:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Independientemente del comando que elija, 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. [email protected]'s password: Now try logging into the machine, with "ssh '[email protected]'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Ahora puede continuar e iniciar sesión en [email protected] 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 siempre que inicie sesión en el futuro).
Paso cuatro opcional:deshabilite la contraseña para el inicio de sesión raíz
Una vez que haya copiado sus claves SSH en su servidor y se haya asegurado de que puede iniciar sesión solo con las claves SSH , puede continuar y restringir el inicio de sesión raíz para que solo se permita a través de claves SSH.
Para hacer esto, abra el archivo de configuración de SSH:
sudo nano /etc/ssh/sshd_config
Dentro de ese archivo, busque la línea que incluye PermitRootLogin
y modifíquelo para asegurarse de que los usuarios solo puedan conectarse con su clave SSH:
PermitRootLogin without-password
Aplicar los cambios:
service openssh-server restart