SSH conexión transparente

Normalmente cada vez que queremos administrar nuestra rpi, solemos abrir una terminal, conectarnos vía SSH e introducimos las contraseña correspondiente para acceder al sistema.

Aunque no es una cosa que hagamos con mucha frecuencia, sobre todo después de tener la rpi ya configurada, es verdad que las primeras veces, o tras una nueva instalación del sistema, necesitamos conectarnos frecuentemente para ir instalando los servicios y programas que vamos a necesitar.

Existe una forma muy sencilla para conectarnos a un servidor SSH sin que nos pida la contraseña de usuario, para ello utilizaremos las claves públicas y privadas que generemos para SSH. evitando que nuestra contraseña pueda ser robada, también puede resultar útil para automatizar copias de seguridad.

Generar las claves

En el ordenador que hace de cliente ejecutaremos el comando sssh-keygen -b 4096 -t rsa , nos preguntará por el nombre y ubicación de las claves a generar, y una contraseña para cifrar las claves, si no se pusiera una clave, la contraseña se guardaría sin cifrar, con los consiguientes riesgos que ello supone.

ssh-keygen -b 4096 -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/carlos/.ssh/id_rsa): /home/carlos/.ssh/prueba_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/carlos/.ssh/prueba_rsa.
Your public key has been saved in /home/carlos/.ssh/prueba_rsa.pub.
The key fingerprint is:
SHA256:spDiJiqLPM2Xvs9KKtJj8Vk7LI1JjKtYf7+6DJfixWA carlos@Aspire-E5-574G
The key's randomart image is:
+---[RSA 4096]----+
|                 |
|                 |
|                 |
|     .           |
|  .oE . S        |
| .ooo+.+         |
|..*=oOB.         |
|B*==OOB          |
|O=oo=*BBo.       |
+----[SHA256]-----+

Podemos ver las claves generadas:

ls -l .ssh

total 8
-rw------- 1 carlos users 771 jun 18 19:47 prueba_rsa
-rw-r--r-- 1 carlos users 611 jun 18 19:47 prueba_rsa.pub

Exportar clave pública

Ahora sólo nos quedará añadir la clave pública que acabamos de generar (prueba_rsa.pub) al servidor SSH de la rpi, nos pedirá introducir la contraseña del usuario, en mi caso, la clave del usuario pi,

ssh-copy-id pi@direccion.ip.raspberrypi

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
pi@1direccion.ip.raspberrypi's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'pi@direccion.ip.raspberrypi'"
and check to make sure that only the key(s) you wanted were added.

Si ahora nos conectamos a la rpi por SSH no nos pide la contraseña. En mi distribución, Antergos, me aparece esta ventaba solicitando la contraseña de la clave que hemos generado antes, sólo la pide una primera vez.

Posibles errores

Puede ser que si creas la carpeta .ssh la crees sin los permisos adecuados y no funcione el acceso automático.

La carpeta ~/.ssh del servidor (rpi) debe de tener permisos 700.

El fichero authorized_keys debe tener permisos 600.

Puedes ver el log para ver los errores

cat /var/log/auth.log

Jun 18 22:34:20 raspberrypi sshd[3175]: Authentication refused: bad ownership or modes for directory /home/pi/.ssh

Como veis, a mi no me funcionaba precisamente por un error de permisos equivocados en la carpeta /home/pi/.ssh

comentario powered by Disqus