Usar claves SSH para acceder a un servidor

Cuando se accede a un servidor se puede hacer por SSH, y por defecto con un usuario y contraseña. Pero si has de dar acceso a otras personas, lo mejor es darles acceso mediante una clave SSH generada para cada usuario.

Estas claves están formadas por dos ficheros, uno de ellos incluye la llamada «clave pública» y la otra la «clave privada». La privada es tuya y nunca has de dársela a nadie, y la pública es la que puedes usar en los servidores.

Generando las claves

Linux / Mac

Si estás en un servidor Linux o Mac, puedes usar la herramienta ssh-keygen. Esta herramienta te pedirá dónde quieres guardar los ficheros y una vez acabes tendrás los dos allí disponibles.

Al final acabará devolviendo algo similar a:

Your identification has been saved in /your_home/.ssh/id_rsa
Your public key has been saved in /your_home/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/hk7MJ5n5a5fsaTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host
The key's randomart image is:
+---[RSA 3072]----+
|                .|
|               + |
|              +  |
| .           o . |
|o       S   . o  |
| + o. .oo. ..  .o|
|o = oooooEo+ ...o|
|.. o *o+=.*+o....|
|    =+=ooB=o.... |
+----[SHA256]-----+

Windows

Para generar una clave en Windows lo mejor es usar el programa Puttygen.

Pulsaremos en Generate, moveremos el ratón por la pantalla, y al acabar generará una serie de códigos. Pondremos una contraseña segura, por favor, y guardaremos tanto la «public key» como la «private key». Estos dos ficheros los mantendremos a resguardo.

Publicando las claves

Lo primero de todo es, si estás entrando como root, crear un usuario con los permisos para gestionar todo, a la antigua usanza. Por ejemplo, vamos a crear el usuario wpsysadmin.

adduser wpsysadmin

Nos pedirá una contraseña y se la pondremos, además de algunos otros datos.

Ahora le daremos permisos de «sudo» para poder acceder a todo el sistema.

usermod -aG sudo wpsysadmin

Ahora le asignaremos una clave SSH, ya que tenemos la clave pública disponible. La abriremos con un editor de texto o la mostraremos por pantalla. El contenido será similar a este:

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

Entraremos en el servidor donde queremos instalar la clave y crearemos, si no existe, la carpeta correspondiente.

mkdir -p ~/.ssh

Y lanzaremos un comando tal que así (acortado para hacerlo legible):

echo 'ssh-rsa AAAAB3NzaC1yc2EAAA...Q== demo@test' >> ~/.ssh/authorized_keys

Y daremos los permisos correspondientes.

chmod -R go= ~/.ssh

Desactivando las contraseñas

Un último paso posible es el de desactivar las contraseñas tradicionales y sólo acceder con claves SSH. Para ello deberíamos hacer lo siguiente.

vim /etc/ssh/sshd_config

Allí deberemos modificar el parámetro PasswordAuthentication de «yes» a «no».

PasswordAuthentication no

Una vez lo hagamos, reiniciaremos el servicio SSH.

systemctl restart ssh

Accediendo con clave SSH

En la mayoría de programas de acceso por SSH tendrás la posibilidad de incluir un usuario y contraseña, o un usuario y Clave SSH, que es lo que configuraremos.

Y, a partir de este momento, cuando accedas al servidor, lo deberás acceder con tu clave privada y la contraseña que configuraste al generarla.


Sobre este documento

Este documento está regulado por la licencia EUPL v1.2, publicado en WP SysAdmin y creado por Javier Casares. Por favor, si utilizas este contenido en tu sitio web, tu presentación o cualquier material que distribuyas, recuerda hacer una mención a este sitio o a su autor, y teniendo que poner el material que crees bajo licencia EUPL.