Introducción
Nos planteamos conectar por ssh desde PC01 a PC02 sin poner usuario ni contraseña manteniendo la encriptación.
En mi caso PC01 tiene ip 192.168.1.100 que sería mi pc y la PC02 con ip 192.168.1.101 sería mi servidor.
Generar Claves RSA
Usamos shh-keygen para optener el par de llaves, una privada y la otra pública.
Al ejecutar nos pide que escribamos el nombre del archivo, presionamos Enter Enter Enter para guardarlas con el nombre y en el path por defecto.
ssh-keygen -b 4096 -t rsa
Nos va a pedir una contraseña, si no queremos, no es necesario, solo le damos Enter.
Podemos agregar un comentario, nombre del usuario, nombre del equipo y fecha.
ssh-keygen -b 4096 -t rsa -C "$(whoami)@$(hostname)-$(date -I)"
Se crearán los archivos correspondientes a la llave privada y la pública, id_rsa y id_rsa.pub en /home/youruser/.ssh/
La clave privada nadie debe tener acceso, la clave publica es lo que podemos transferir a otras pcs.
Enviar las claves al servidor con ssh-copy-id.
ssh-copy-id root@192.168.1.101
Con esto enviamos la clave pública de nuestro usuario a PC02, por lo tanto en el servidor tiene que existir el mismo nombre de usuario, ej. root.
Listo.
A partir de ahora nos podemos conectar sin contraseña. Esto es porque el protocolo ssh puede negociar la conexión comparando el par de llaves, la pública que le enviamos con la privada que tenemos nosotros.
ssh root@192.168.1.101
Enviar las claves usando ssh.
cat ~/.ssh/id_rsa.pub | ssh root@192.168.1.101 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Registrar localmente en el servidor
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys"
Registrar manualmente
mkdir -p ~/.ssh
echo cadena_completa_public_key >> ~/.ssh/authorized_keys
Editar manualmente el archivo authorized_keys"
Como último recurso. También se puede abrir el archivo con un editor de texto y pegar la clave de nuestro cliente.