En caso de no tener una clave, hay que generarla con el comando:
ssh-keygen -t rsa -b 2048 -C "Descripción de la clave email@dominio.com"
Pedirá el nombre de salida, por defecto id_rsa, en mi caso puse mis nombre y apellidos, los archivos se guardarán en la carpeta ~/.ssh
Creamos un archivo de configuración para la conexión llamado config, dentro de la carpeta de claves, es decir:
~/.ssh/config
Y dentro del mismo agregamos algo similar a:
PubKeyAuthentication yes
IdentityFile ./path/to/key
Configuración en el servidor
En el servidor remoto es necesario agregar la clave publica en el archivo:
~/.ssh/authorized_keys
Hay dos formas de hacerlo, la primera mediante el comando:
$ ssh-copy-id -i ~/.ssh/id_rsa
user@host -p port
La segunda forma mediante el comando:
$ cat ~/.ssh/id_rsa.pub | ssh user@host -p port "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Debemos asegurarnos que los permisos de la carpeta .ssh sean 755 y del archivo authorized_keys sean 644.
Para impedir el acceso al servidor mediante contraseñas y con root, editamos el archivo /etc/ssh/sshd_config, cambiando lo siguiente:
PermitRootLogin no PasswordAuthentication noReiniciamos el servicio:
$ systemctl restart sshd
Con esto deberíamos poder ingresar al servidor utilizando una llave ssh.
Para eliminar un footprint generado de algún servidor usar:
ssh-keygen -f "~/.ssh/known_hosts" -R "DIR.IP.DEL.HOST"
Referencias:
https://www.stackscale.com/es/blog/configurar-llaves-ssh-servidor-linux/
https://www.ssh.com/ssh/config/
https://www.ssh.com/ssh/copy-id
https://serverfault.com/questions/253313/ssh-returns-bad-owner-or-permissions-on-ssh-config
https://askubuntu.com/questions/311558/ssh-permission-denied-publickey
No hay comentarios.:
Publicar un comentario