6.2.3. Ejecución remota de comandos en modo desatendido
El modo desatendido es una de las opciones que ofrece el servicio SSH mediante la cual es posible configurar una conexión procedente de un equipo retomo siempre como confiable. Se basa en el uso de claves asimétricas y de firma digital, tal como se describe a continuación.
En primer lugar, el usuario que quiere establecer una conexión confiable con el servidor remoto generará un par de claves asimétricas usando la herramienta ssh-keygen cuya sintaxis es:
ssh-keygen -t dsa | ecdsa | ed25519 | rsa | rsa1
usando la opción -t para establecer el algoritmo que se desea emplear en el proceso de generación de la clave asimétrica.
Para saber más
En los siguientes enlaces podrás aprender más cosas sobre los algoritmos de generación de claves de SSH:
En segundo lugar, hay que hacer llegar la parte pública de la clave asimétrica creada en el paso anterior, a la cuenta de usuario del equipo servidor SSH en nombre de la cual se ejecutarán los comandos remotamente. Dicha clave pública será utilizada por el servidor SSH para comprobar la firma digital del usuario que lanza el comando remoto, es decir, para comprobar la autenticación del usuario emisor.
Para esto último, el cliente SSH ya dispone de una aplicación que se encarga de ello: ssh-copy-id -i. Al ejecutar dicho comando se solicitará la contraseña del usuario remoto, y se modificará en el servidor SSH el contenido de su archivo authorized_keys. Este archivo es donde se almacenarán las claves públicas de los usuarios de confianza.
Por ejemplo, si el usuario arubio ha generado un par de claves asimétricas usando rsa, y el contenido de la clave pública está almacenado en el fichero ~/.ssh/id_rsa.pub, se puede hacer llegar dicha clave al servidor SSH usando el siguiente comando:
En el caso de que no exista el subdirectorio .ssh dentro del home del usuario arubio en la máquina remota, ni el archivo authorized_keys, el comando ssh-copy-id -i los creará automáticamente.
De esta manera se garantiza que el usuario que ha exportado su clave pública pase a ser un usuario de confianza por el usuario del equipo servidor SSH que la ha importado. Es decir, a partir de ese momento, cuando el usuario remoto trate de conectarse vía SSH, en la solicitud de conexión adjunto viajará un extracto firmado por él. Por tanto, el servidor SSH comprobará a través de la clave pública que quien trata de acceder es quien dice ser, y le dejará entrar sin necesidad de introducir login y password.
En el caso de ser propietarios de varias claves públicas en el servidor y se quiere indicar cual de ellas usar, hay que hacer uso de la opción -i del comando SSH del siguiente modo:
ssh -i rutaClave usuarioRemoto@IPServidorSSH
Recomendación
Como has podido ver en este apartado, SSH permite generar claves asimétricas empleando diferentes algoritmos (dsa, ecdsa, ...). Te animo a que practiques el comando de generación de claves empleando diferentes algoritmos.