Gestión básica de ssh
¿Qué es ssh?
Es un protocolo de conexión remota que permite a los administradores controlar y gestionar sus propios servidores a través de un mecanismo de autenticación.
Primeros pasos
Para conectarnos a un servidor remoto debemos conocer:
- La ip o el dominio de nuestro servidor.
- El usuario y contraseaña de acceso para conectarnos (se recomienda no utilizar el usuario root).
Ejemplo para acceder a un servidor VPS
ssh user@87.652.176.23
Seguridad en ssh
Vamos a realizar algunas modificaciones de seguridad en el archivo de configuración de ssh, para evitar el acceso de otros personas a nuestro servidor.
Para ello editamos el archivo sshd_config
nano /etc/ssh/sshd_config
# Descomentamos y cambiamos el puerto por defecto de ssh (22).
Port 4422
# Descomentamos el tiempo de inactividad de la terminal antes de cerrarse.
LoginGraceTime 2m
# Descomentamos y cambiamos a no para evitar el acceso de root por ssh.
PermitRootLogin no
# Descomentamos y cambiamos el número máximo de intentos de login fallidos.
MaxAuthTries 2
# Descomentamos y cambiamos cantidad de sesiones abiertas permitidas.
MaxSessions 1
# Descomentamos y cambiamos a yes para poder hacer login a través de llave pública / llave privada.
PubkeyAuthentication yes
# Reiniciamos el servicio de ssh** para que se puedan aplicar los cambios en la configuración.
systemctl restart ssh
Creación las llaves ssh
A través del comando ssh-keygen, vamos a generar
- Llave pública (id_rsa.pub)
- Llave privada (id_rsa).
ssh-keygen
Nos pedirá una passphrase para proteger nuestra clave privada, es recomendable poner una contraseña (passphrase) siempre y cuando no vayamos a usar la llave para automatizar procesos.
A continuación vamos a copiar nuestra llave pública en la máquina remota donde queremos acceder sin necesidad de usuario y contraseña.
ssh-copy-id -i ./.ssh/id_rsa user02@97.132.87.100
¡¡ Vamos a probar !!
ssh user02@97.132.87.100
Efectivamente hemos accedido a nuestro otro servidor sin necesidad de introducir la contraseña.