Raspberry Pi. Acceso a través de ssh
Una vez que ya tenemos nuestra Raspberry en marcha y funcionando ahora viene la parte divertida, cómo acceder a ella desde el exterior. En mi caso desde otra ubicación y además con un poco de seguridad para que nadie pueda acceder a ella (recordar que esto se tiene que hacer desde el equipo que se va a conectar a la Raspberry).
Esto se consigue a través de nuestro bien intencionado ssh y una correcta configuración que pasaré a explicar a continuación.
Lo primero es tener instalado el paquete openssh-server, luego, procedemos a generar nuestras claves públicas para realizar la conexión con la Raspberry. Este procedimiento se realiza a través de la instrucción ssh-keygen como se muestra a continuación:
usuari@raspberry:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tuUsuario/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tuUsuario/.ssh/id_rsa.
Your public key has been saved in /home/tuUsuario/.ssh/id_rsa.pub.
The key fingerprint is:
be:11:15:e3:6a:dc:a6:a6:7e:e9:6c:7b:9f:30:28:40 root@poe
The key's randomart image is:
+--[ RSA 2048]----+
| o |
| . o |
| E o |
| . . + |
| . S o |
| . o = |
| . *.o |
| =+o.o . |
| .o+=o .o |
---------------+--+
Ahora, pasamos a copiar esta clave pública a nuestra Raspberry con la instrucción ssh-copy-id como se muestra a continuación:
usuari@raspberry:~$ ssh-copy-id -i .ssh/id_rsa.pub tuUsuario@ipRaspberry
Con esta instrucción, lo que se hace es copiar nuestra clave pública en la Raspberry.
Solamente faltaría realizar la conexión a través de ssh para ver el resultado:
usuari@raspberry:~$ ssh -l tuUsuario -p tuPuerto ipRaspberry
Así mismo, para obtener un poco más de seguridad, yo lo he hecho, es configurar de la siguiente manera el fichero:
root@raspberry:~# vi /etc/ssh/sshd_config
Modificamos las siguientes opciones:
# Desactivar la opción de acceso a través de password
PasswordAuthetication no
# Desactivar la opción de acceso a través de root
PermitRootLogin no
# Acceso a través de una llave pública
PubkeyAuthenticacion yes
# Se aconseja cambiar el puerto de acceso del servicio ssh
Port 2222
# Cantidad de segundos que la pantalla de login estará disponible
LoginGraceTime 60
# No permitimos contraseñas vacías o en blanco
PermitEmptyPasswords no
# Número máximo de errores permitidos al hacer login
MaxAuthTries 3
# Número máximo de conexiones simultáneas por IP
MaxStartups 2
nota: Es aconsejable borrar las claves que tenemos en la Raspberry y volverlas a generar como simple medida de seguridad, porque estas claves son las mismas en todas las imágenes de Jessie que nos bajamos.
También tenéis disponible el siguiente artículo donde explico cómo hacer alias para realizar las conexiones a nuestros servidores de
SSHy no tener que poner toda la instrucción y solo hacerlo a través del nombre del servidor.
Entonces, si anteriormente nos hemos conectados desde nuestro PC a la Raspberry, ahora nos mostrará un mensaje donde nos indicará que las claves son erróneas. Para solucionar este problema, hay dos maneras, que son las siguientes:
- Borrar el directorio
.sshde nuestro usuario - Borrar la clave que tenemos almacenada de nuestra Raspberry
Es preferible realizar la segunda opción de la siguiente manera:
usuari@raspberry:~$ ssh-keygen -f "/home/tuUsuario/.ssh/know_host" -R ipRaspberryerry
Con esto conseguimos borrar la clave de la Raspberry que tenemos en nuestro PC.