Utilización de claves pública y privada

Hoy os voy a decir cómo hacer para que no nos pida contraseña cada vez que conectamos por ssh a nuestra Raspberry Pi.

Para ello haremos uso de nuestras claves pública y privada, que no son más que un par de claves que permiten autenticarnos en otro dispositivo (además de otras muchas más cosas). El funcionamiento es sencillo: generamos nuestro par de claves (una pública y una privada), nos guardamos la privada para nosotros y podemos compartir la clave púbica con cualquier otro equipo donde queramos conectarnos. Haciendo uso de unos algoritmos, el sistema verificará que nuestra clave privada y nuestra clave pública son parte del mismo sistema y nos permitirá entrar.

Así pues, lo primero que hay que hacer es generar nuestro par de claves en caso de que no las tengamos. ¿Cómo saber si las tenemos? fácil, abrimos una ventana de terminal y accedemos al directorio .ssh que cuelga de nuestra carpeta home.

imagen 1

En este caso podéis ver que el único fichero que hay es el que se generó cuando me conecté a la Raspberry y me preguntó si confiaba en ese dispositivo (de ahí que se llame known_hosts). Eso quiere decir que no tengo claves. Para crearlas nada tan sencillo como ejecutar ssh-keygen

imagen 2

Aquí podeis ver que han pasado varias cosas:

  • lo primero es que me preguntó dónde quería alojar los ficheros de claves. He pulsado ENTER para dejar el directorio por defecto, que es .ssh como vimos anteriormente.
  • Lo segundo que me preguntó fue un passphrase. Esta sería una contraseña que habría que utilizar cada vez que hagamos uso de las claves para que, en caso de que la clave privada se vea comprometida por robo o extravío, aun y así no se podría acceder a los sitios de confianza al no disponer del passphrase. Como en mi caso lo que quiero es dejarme de claves, pulso ENTER dos veces y lo dejo en blanco.

Después de eso dice que las claves se han generado correctamente y nos muestra la imagen de nuestra clave. Muy bonita.

Bien, si ahora volvemos a ver qué hay en nuestro directorio .ssh deberíamos ver algo más que antes.

imagen 3

Ahí pueden verse los dos ficheros con las claves: id_rsa, que contiene la clave privada (este fichero no debe ser compartido con nadie), e id_rsa.pub, que contiene la clave pública. Este es el que compartiremos por ahí. ¿Cómo lo hacemos? fácil. Lo primero es mostrar el contenido del fichero público.

imagen 4

Ahora tenemos que seleccionar con el ratón toda esa ristra de caracteres y copiarlo al portapapeles.

imagen 5

Después nos conectamos por ssh a la Raspberry con la contraseña que hemos utilizado hasta ahora (recuerda que si no la has cambiado es raspberry)

imagen 6

En este momento, si intentamos entrar en el directorio .ssh del usuario xbian no debería dejarnos ya que ese directorio no existe (a no ser que hayas hecho ssh hacia algún otro equipo desde la Raspberry).

imagen 7

No pasa nada porque vamos a hacer uso de ssh-keygen para generar un par de claves para este usuario y así el directorio .ssh se creará automáticamente.

imagen 8

¿Veis como la imagen de la clave es distinta? Bien, ahora deberíamos poder acceder al directorio .ssh

imagen 9

Ahí están nuestras claves para el usuario xbian.

Ahora lo que queremos es poder acceder automáticamente desde el Mac en la Raspberry. Para ello tenemos que decirle a ésta que mi usuario del Mac es de confianza. Esto lo conseguimos creando un fichero llamado authorized_keys con la ayuda del comando nano authorized_keys.

imagen 10

Dentro del fichero pegamos el contenido del portapapeles, que era el contenido de nuestro fichero de clave pública de la cuenta del Mac. Hacemos CTRL+X para salir, le damos a Y para guardar los cambios, y pulsamos ENTER para dejar el nombre del fichero como está. Ahora, deberíamos tener un nuevo fichero en nuestro directorio .ssh

imagen 11

Ahí lo tenemos, así que lo último que nos queda por hacer es probarlo. Así que hago exit para terminar la conexión ssh y luego intento conectarme de nuevo.

imagen 12

¡Premio! como veis no me ha pedido la contraseña en ningún momento. Es algo muy sencillo y que nos evitará tener que estar escribiendo la contraseña cada vez que nos conectamos, cosa que haremos mucho para continuar configurando el sistema en las siguientes entradas.

Primeros pasos. Instalación

20130522-222726.jpg

Bueno, pues hoy vamos a empezar por fin con la instalación de nuestra Raspberry Pi. Yo voy a utilizar en esta ocasión una tarjeta SD de 16GB y de clase 10 recién llegada de Amazon. Si os preguntáis de qué tamaño necesitáis la tarjeta deciros que yo he instalado Raspbian en una tarjeta de 2GB y funcionaba sin problema. Eso sí, en cuanto empiezas a descargar paquetes te comes el espacio enseguida. Ahora mismo la tengo funcionando en una de 4GB y sin problemas.

En cuanto a la clase de la tarjeta no es más que la velocidad de lectura/escritura que es capaz de dar. Es muy fácil ya que se dividen de la siguiente manera:

  • Clase 2 – 2 MB/s
  • Clase 4 – 4 MB/s
  • Clase 6 – 6 MB/s
  • Clase 10 – 10 MB/s

Así pues, cuanto mayor sea la clase de nuestra tarjeta mayores velocidades de transferencia conseguiremos y con ello nuestro sistema debería de ir más fluido. Eso sí, también son algo más caras aunque no en exceso. Esta mía de la imagen me ha costado 13,30€ (puedes verla aquí).

Como recordareis del post anterior al final me he decantado por la distribución XBian, así que lo primero que vamos a hacer (después de meter la tarjeta en el Mac) es entrar en su página de descargas aquí y seleccionamos nuestro sistema operativo para que la descarga comience automáticamente (unos 7MB).

Pincho en el archivo descargado y descubro para mi sorpresa que no es más que un instalador, supongo que para ayudar a los más novatos en el proceso de copiado de la imagen a la tarjeta SD y, posiblemente, alguna configuración adicional como puede ser un dispositivo WiFi que tengamos conectados.

Ejecuto el instalador y se me muestra una bonita ventana que me insta a ejecutar la aplicación. No le decepciono y pulso Ejecutar.

Captura de pantalla 2013-05-22 a la(s) 19.12.26

Meto mi contraseña de root de OSX y continuo hasta la siguiente pantalla en la que, al parecer, podemos elegir la versión de XBian que queremos instalar y el destino.

Captura de pantalla 2013-05-22 a la(s) 19.17.38

Las opciones a la hora de elegir versión no son muy amplias, solamente la XBian 1.0 Alpha 4 y la Alpha 5. Por eso de que lo más nuevo es lo mejor elijo la versión 5. Y ahora viene el problema: no me detecta la tarjeta SD. El desplegable inferior solamente me muestra dos opciones: la segunda es mi disco USB con Time Machine y la primera no parece una buena elección ya que dice “No aplicable (sin sistema de archivos)”.

Captura de pantalla 2013-05-22 a la(s) 19.19.43

Sé que no quiero que destruya el disco de copias de seguridad, por lo que voy a tentar a la suerte y seleccionar la primera opción a ver qué pasa. Le doy a Install.

Captura de pantalla 2013-05-22 a la(s) 19.23.34

No hay error, y al parecer ahora lo que tiene que hacer es descargarse la imagen de la versión elegida. Pues nada, le doy a Yes y a ver qué pasa.

Captura de pantalla 2013-05-22 a la(s) 19.30.05

La imagen empieza a descargarse a buena velocidad aunque en ningún momento me ha pregunta dónde quiero descargarla ni me ha informado de dónde lo está haciendo. Echo un vistazo a la carpeta de Descargas pero ahí no está. Bueno, misterios. Entretanto la imagen ya se ha descargado y me muestra una bonita advertencia.

Captura de pantalla 2013-05-22 a la(s) 19.32.16

Típico mensaje de que si grabas la imagen en la tarjeta primero borrará la tarjeta. Esto es obvio, pero no está de más que nos lo recuerden. Bueno, me armo de valor porque no las tengo todas conmigo y le voy a Yes (no sin antes comprobar de qué hora es mi última copia de seguridad).

Captura de pantalla 2013-05-22 a la(s) 19.35.57

Ohhhh, parece que el proceso de verificación ha fallado y me insta a descargarla otra vez. Yo creo que el problema viene porque en el desplegable no aparecía mi tarjeta SD, pero voy a probar de nuevo a ver qué pasa.

Después de un rato me aparece que ha descargado la imagen al 100% pero de ahí no se mueve así que vuelvo a la página de XBian y me bajo la imagen a pelo, que al menos yo sé instalarla. El enlace de la versión 1.0 Alpha 5 es este. Este fichero ya son 151MB, que tampoco son tantos y se descargan en un periquete.

Ahora voy a explicados cómo grabar la imagen que acabamos de descargar utilizando Mac OSX.

Lo primero que hay que hacer es descomprimir el fichero que nos hemos bajado (.7z) para obtener nuestra imagen en formato .img. Yo para ello he utilizado el programa gratuito The Unarchiver.

Después, abrimos una ventana de Terminal. Podéis hacerlo a través del menú Aplicaciones o tecleando Terminal en Spotlight. Después nos vamos a la carpeta de Descargas donde presumiblemente se nos habrá descomprimido el fichero con la imagen .img. Para ello tecleamos cd Downloads ; ls *.img

Captura de pantalla 2013-05-22 a la(s) 19.53.46

Ahí podéis ver el nombre de nuestro fichero. Ahora ejecutamos diskUtil list para identificar dónde está montada nuestra tarjeta SD. Deberíais ver algo como esto.

Captura de pantalla 2013-05-22 a la(s) 19.57.35

Ya que la tarjeta que estoy utilizando es de 16GB, es fácil identificar que es la última de las entradas: /dev/disk4. Con esto en mente, pasamos a ejecutar el siguiente comando para desmontar la tarjeta, ya que para hacer la copia tiene que estar desmontada: diskUtil unmountDisk disk4

Captura de pantalla 2013-05-22 a la(s) 22.15.40

Ya tenemos la tarjeta conectada al Mac pero desmontada, así que ya podemos comenzar con el proceso de copia. Para ello utilizaremos el comando dd bs=1m if=<imagen> of=<ruta de la SD>
Una cosa a tener en cuenta es utilizar rdisk# en lugar de solamente disk#, ya que así el proceso de copia será mucho más rápido. Además como podeis ver en la imagen, me ha sido necesario utilizar sudo para realizar la operación como administrador, ya que si no recibiremos un error de Permiso denegado.

Captura de pantalla 2013-05-22 a la(s) 22.22.33

Con esto ya tenemos nuestra tarjeta SD con la imagen de XBian instalada, por lo que solamente quedaría desmontarla, sacarla del Mac y meterla en la Raspberry para hacerla funcionar, pero eso lo voy a dejar ya para el siguiente día.