Acceso mediante claves público-privadas

Una vez realizada la configuración inicial de nuestro servidor:

  • Cambio de contraseña del usuario root
  • Desactivación del acceso del usuario root
  • Creación de un usuario sudo para acceso al servidor
  • Activación y configuración de un cortafuegos
  • Activación y configuración de un bloqueador de accesos

Es el momento de dar un paso más en la seguridad e implementar el acceso mediante claves público privadas y desactivar definitivamente el acceso por usuarios y contraseñas

1.- Generamos las claves público-privadas

ssh-keygen -b 4096 
# Generating public/private rsa key pair # Enter file in which to save the key (/home/user/.ssh/id_rsa): # Enter passphrase (empty for no passphrase): añadimos una contraseña# Enter same passphrase again: # Your identification has been saved in /home/user/.ssh/id_rsa # Your public key has been saved in /home/user/.ssh/id_rsa.pub

Verificamos que el contenido de los archivos de clave pública (* .pub) empiezan por ‘ssh-rsa’: 

cat ~/.ssh/id_rsa.pub

Cambiamos el nombre de los archivos de claves:

mv id_rsa miservidor
mv id_rsa.pub miservidor.pub

2.- Creamos la carpeta .ssh en el VPS con permisos 700 y dentro de ella el archivo authorized_keys con permisos 600:

cd /home/micarpeta
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

3.- Copiamos la clave pública en el servidor VPS

Podemos realizar este proceso manualmente, iniciando sesión en el servidor y copiando y pegando la clave pública en el archivo ‘authorized_keys’ (cada clave pública deberá ser una línea diferente de ese archivo)

sudo nano /home/micarpeta/.ssh/authorized_keys

4.- Comprobamos en otro terminal que funciona la autenticación en el servidor con claves SSH

ssh miservidor@ip_vps -p XXXX

Se solicitará que la introduzcamos la contraseña de la clave pero ya no se solicitará la contraseña del usuario sudo

5.- Iniciamos sesión en el VPS con claves SSH y modificamos el archivo sshd_config para desactivar el acceso mediante contraseñas

sudo nano /etc/ssh/sshd_config

PasswordAuthentication no
AllowUsers usuario1 usuario2

sudo service sshd restart

6.- Podemos organizar múltiples conexiones utilizando el archivo de configuración ~/.ssh/config en nuestros equipos locales:

Host nombre_conexion
IdentitiesOnly yes  
IdentityFile ~/.ssh/nombre_archivo_clave_privada
Hostname IP_DEL_VPS
User nombre_usuario  
Port XX

# Ejemplo conexiones:

Host elrocho# VPS en Contabo
    IdentitiesOnly yes
    IdentityFile ~/.ssh/elrocho
    Hostname 72.112.138.223
    User rocho
    Port 2244

Host domotica # Domótica El Rocho Red Local
    IdentitiesOnly yes
    IdentityFile ~/.ssh/domotica
    Hostname 10.0.4.51
    User domo
    Port 224

Deja un comentario