Creación de una clave SSH

Crear una nueva clave SSH

# Creamos la clave ssh:
ssh-keygen -t rsa -b 2048 -C "<email@dominio.com>"

Permisos para una clave SSH

Los permisos que debe tener son bastante restrictivos.

chmod 400 ~/.ssh/my-key.pem

Configuración de la clave SSH

# Iniciamos ssh-agent como un proceso de fondo:
eval "$(ssh-agent -s)"
# Añadimos la clave privada al agente de autentificación:
ssh-add ~/.ssh/id_rsa

Importar una clave SSH

  • Importar las claves en la carpeta ~/.ssh
# Cambiar los permisos de la carpeta ~/.ssh
chmod 775 ~/.ssh
# Cambiar los permisos de los ficheros enviroment, clave privada (id_rsa) known_hosts
chmod 600 ~/.ssh/{enviroment,id_rsa,known_hosts}
# Cambiar los permisos de la clave pública
chmod 775 ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/autorized_keys

Configuración de una clave SSH

Cambiar el puerto de acceso de SSH

# Si es un servidor remoto, hay que tener en cuenta
# de habilitar el acceso a ese puerto desde UFW
sudo ufw allow 2245/tcp
# Accedemos al fichero de configuración de SSH:
sudo -e /etc/ssh/sshd_config
# Cambiamos el puerto por defecto al que queramos:
#Port 22
Port 2245
# Reiniciamos SSH:
sudo /etc/init.d/ssh restart
# Comprobamos con un nuevo punto de acceso SIN desconectarnos del actual
# Accedemos al servidor con el nuevo puerto:
ssh -p 2245 <usuario>@<ip>

Crear fichero de configuración de SSH

# Accedemos al fichero de configuración de SSH ~/.ssh/config
# Añademos los datos de las direcciones deseadas:
Host <nombre>
    HostName <IP>
    HostName <dominio>
    User <usuario>
    IdentityFile <ruta/al/fichero>
    Port <puerto>

Cambiar la clave SSH activa

# Primero listamos la clave activa
ssh-add -l
# Añadimos la nueva clave SSH
ssh-add /nueva/ruta/
# Probamos la conexión
ssh -T usuario@host 

Habilitar el acceso SSH a root

# Editamos el fichero
sudo -e /etc/ssh/sshd_config
# Modificamos
# PermitRootLogin without-password
PermitRootLogin yes
# Reiniciamos ssh
/etc/init.d/ssh restart

Restringir acceso SSH a root

# Editamos el fichero
sudo -e /etc/ssh/sshd_config
# Modificamos
# PermitRootLogin without-password
# o
# PermitRootLogin yes
# por:
PermitRootLogin no
# Reiniciamos SSH
/etc/init.d/ssh restart
# Una vez instalado OpenSSH, comprobamos que el archivo de configuración permite a usuarios conectarse únicamente con clave SSH:

Habilitar el acceso SSH sin contraseña

# Añadir la clave pública al fichero .ssh/authorized_keys
cat ~/.ssh/id_rsa.pub | ssh <usuario>@<ip> 'cat >> .ssh/authorized_keys'

Acceder con SSH mediante un fichero PEM

ssh -i <ruta/fichero.pem> <usuario>@<ip>