Raspberry Pi. Acceso a traves de ssh

Apr 04, 16

Una vez que ya tenemos nuestra Raspberry en marcha y funcionando ahora viene la parte divertida, como 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 traves de nuestro bien intencionado ssh y una correcta configuración que pasare a explicar a continuación.

Lo primero es tener instalado el paquete openssh-server, luego, procedemos a generar nuestras claves publicas para realizar la connexión con la Raspberry. Este procedimento se realiza a traves de la instruccion 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 publica a nuestro 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 publica en la Raspberry.

Ahora solamente faltaria realizar la connexión a traves de ssh para ver el resultado:

   usuari@raspberry:~$ ssh -l tuUsuario -p tuPuerto ipRaspberry

Asi mismo, para obtener un poco más de seguridad, yo lo he echo, es configurar de la siguiente manera el fichero:

   root@raspberry:~# vi /etc/ssh/sshd_config

Y modificaremos las siguientes opciones:

   # Desactivar la opción de acceso a traves de password
   PasswordAuthetication no
   # Desactivar la opción de acceso a traves de root
   PermitRootLogin       no
   # Acceso a traves de una llave publica
   PubkeyAuthenticacion  yes
   # Se aconseja cambiar el puerto de acceso del servicio ssh
   Port 2222
   # Cantidad de segundos que la pantalla de login estara disponible
   LoginGraceTime 60
   # No permitimos contraseñas vacias o en blanco
   PermitEmptyPasswords no
   # Numero maximo de errores permitidos al hacer login
   MaxAuthTries 3
   # Numero maximo de conexiones simultaneas por IP
   MaxStartups 2

Nota: Antes de realizar este procedimiento, 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 imagenes de Jessie que nos bajamos.

Nota: Tambien teneis disponible el siguiente articulo donde explico como hacer alias para realizar las conexiones a nuestros servidores de SSH y no tener que poner todo la instrucción y solo hacerlo a traves del nombre del servidor.


Entonces, si anteriormente nos hemos conectados desde nuestro PC a la Raspberry, ahora nos mostrara un mensaje donde nos indicara que las claves son erroneas. Para solucionar este problema, hay dos maneras, que son las siguientes:

  • Borrar el directorio .ssh de 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.