SSH conexión transparente
2017-07-04
Índice
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 [email protected]
/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
[email protected]'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
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 authorizedkeys 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/
Espero que te haya gustado, pasa un buen día. 🐧