Blog dedicado a la distribución GNU/Linux que uso habitualmente, Arch Linux, a mis andanzas alrededor del software libre, la programación y a otros temas relacionados con la tecnología y la informática.
Ya desde hace un tiempo los documentos nacionales de indentidad que emite la administración pública española son en el formato de tarjeta inteligente (SmartCard), conocido como DNI electrónico o DNIe. Estas tarjetas inteligentes tienen la ventaja de que incluyen un certificado digital que nos permiten identificarnos en sitios que lo soporten y realizar diversos trámites y acciones.
El DNI electrónico nos puede servir para identificarnos en varias páginas de la administración pública, en las páginas de varios bancos y realizar diferentes trámites electrónicos. El DNIe como medio de identificación en una página tiene la ventaja de que no necesitamos tener un usuario y una contraseña específica para ese sitio sino que con el DNI físico y el PIN nos será suficiente. Para identificarnos necesitamos algo que poseemos (el DNI) y algo que conocemos (PIN) con lo que las posibilidades que de alguien que quiera realizar alguna acción en nuestro nombre suplantando nuestra identidad será más complicado, la seguridad es mayor ya que no basta con conocer únicamente el usuario y clave sino que se necesita algo físico. Conseguir ambas cosas es más difícil que solo la clave. Realizar tramites administrativos de forma electrónica tiene la ventaja que no necesitamos desplazarnos hasta la correspondiente ventanilla para realizar el trámite. Algunos bancos que permiten identificarnos con el DNIe son el Santander, BBK, el infame Bankia y posiblemente muchos otros, también podemos consultar los puntos que poseemos en el carnét de conducir, seguro que hay muchas más cosas útiles en las que podemos dar uso al DNIe.
En esta entrada voy a explicar como instalar el DNI electrónico en Linux más concrétamente en Arch Linux. La primera cosas que necesitaremos será disponer de un lector de tarjetas inteligentes como el siguiente que yo adquirí por unos 12€:
Después en Arch Linux deberemos instalar los siguientes paquetes:
opensc-dnie (AUR) y ccid nos darán el soporte para acceder al DNIe, pcsc-tools nos proporcionará una herramienta (pcsc_scan) con la que podremos comprobar si el lector funciona correctamente y detecta la tarjeta o DNI. Una vez instalados los programas debemos modificar el archivo de configuración «/etc/opensc.conf» aplicando los siguientes cambios y valores en cada apartado y propiedad:
Después debemos iniciar el servicio de opensc, podemos hacer que se inicie con el sistema (enable) o cuando deseemos de forma manual (start):
Una vez hecho todo esto podemos comprobar el funcionamiento de nuestro lector con el DNIe, para ello utilizamos pcsc_scan que nos indicará si ha detectado un lector de tarjetas y si este tiene o no una tarjeta introducida:
Con el siguiente comando podemos ver los certificados del DNIe:
Y con el siguiente comando podemos exportar el certificado del DNI, se nos solicitará el PIN del DNI:
Si examinamos el certificado podemos darnos cuenta de una cosa curiosa y es que aunque el DNI físico se emite con una validez de 10 años el certificado incluido en él solo tiene una validez de 2 años y medio, con lo que pasado este tiempo deberemos acudir a la oficina de expedición para ampliar el periódo límite de uso.
Y esto debería ser parecido para otras distribuciones como Ubuntu, Debian, Mint, openSUSE, Fedora. Los paquetes pueden ser diferentes pero el proceso de instalación será similar a este
Después de la introducción a la criptografía y crear una clave GPG ya sea a través de la linea de comandos en la terminal o con la herramienta Contraseñas y claves de GNOME además de usarla para cifrar y firmar documentos desde la terminal podemos usarla para firmar y cifrar los correos electrónicos que enviemos usando nuestro cliente de correo. La firma de los correos electrónicos permitirá conocer al receptor si el correo ha sido modificado por una tercera parte, comprobar la autenticidad del mensaje y si tenemos la clave pública del destinatario podremos enviarle el correo cifrado evitando que pueda ser leído salvo por el destinatario.
En esta entrada explicaré como firmar y cifrar el correo electrónico que enviemos usando nuestra clave GPG y el cliente de correo por defecto de GNOME, Evolution. Para firmar los correos electrónicos que enviemos deberemos conocer previamente el id de nuestra clave GPG, podemos averiguarlo con el comando:
Este comando nos mostrará todas las claves GPG que tenemos en nuestro sistema, buscaremos la nuestra y nos fijaremos en la segunda columna de la linea que empieza por pub. En mi caso el id de mi clave es E012C989 como puede verse en la captura de pantalla (en la segunda clave).
Una vez que conocemos del id de nuestra clave, vamos a las propiedades de la cuenta de correo de Evolution y lo introducimos en el campo preparado para ello del apartado Seguridad (Propiedades de la cuenta > Seguridad). Y esto será suficiente para que a partir de ahora los correos que enviemos con nuestra cuenta de correo vayan firmados si marcamos la opción «Firmar siempre los mensajes salientes cuando se use esta cuenta» o marcando la opción «Firmar on GPG» en el menu Opciones en la redacción de un mensaje.
La firma digital será añadida como un documento adjunto de nombre «signature.asc» que empezará con el contenido «-----BEGIN PGP SIGNATURE-----». Si evolution nos indica que la firma es válida pero que el remitente no puede ser validado nos falta confiar en la clave.
Con Seahorse accedemos a las propiedades de la clave y en la pestaña
«Detalles» modificamos el nivel de confianza de «Predominar confianza del
propietario», si confiamos en la clave podemos indicar el valor
«Absoluta». Los diferentes mensajes que nos puede indicar Evolution dependiendo de si poseemos la clave pública del remitente, poseemos la clave pero aún no hemos confiado en ella y si tenemos confianza absoluta en la clave son:
Para enviar correos cifrados deberemos solicitar a cada destinatario su clave GPG o PGP pública e importarla en nuestro anillo de claves. También si queremos que nos envíen el correo cifrado deberemos distribuir entre nuestros remitentes nuestra clave pública. Para importar una clave pública de un contacto podemos hacerlo con el siguiente comando desde la terminal:
O también con la aplicación de GNOME Contraseñas y claves con la opción «Archivo > Importar...»
Con otros clientes de correo electrónico la forma de usar GPG varía, en esta entrada he explicado la combinación de GPG/Evolution. Con Thunderbird debemos usar la extensión Enigmail, para Outlook parece que la mejor opción es Gpg4win.
En siguientes entradas de esta serie sobre seguridad explicaré como crear certificados, SSL, servidores, firma digital con Sinadura, smart cards en linux y DNIe, ... y quizá alguna cosa más.
Internet está formado por una red de máquinas interconectadas que en conjunto permiten que un par de máquinas de esa red puedan comunicarse entre si aunque no estén directamente conectadas, el protocolo TCP/IP es el que posibilita esa comunicación. En la comunicación entre las máquinas que no están directamente conectadas la información de la máquina origen ha de ser transportada por un camino de varias máquinas hasta llegar a a la máquina destino y posteriormente de vuelta por el mismo camino u otro. En muchos casos la información que viaja a lo largo de ese camino de terceras máquinas no es relevante ni sensible pero en otros casos podemos necesitar o queremos evitar que esas terceras máquinas puedan acceder a la información que se está transmitiendo. En este último caso es donde entra en acción la criptografía.
Diagrama de enrutadores en internet, cada elipse (roja) es un enrutador por el que pasa la información transmitida entre el cliente (verde) y el servidor (azul)
La criptografía nos permite que el contenido de un mensaje solo sea legible para el emisor y receptor, aunque los datos sean transportados por terceras máquinas solo verán datos ofuscados (o cifrados) a cuyo contenido no se les podrá dar ningún sentido ni interpretación. La criptografía proporciona las siguientes propiedades:
Confidencialidad: garantiza que el mensaje solo pueda ser leído por su destinatario.
Integridad: garantiza que el mensaje no ha sido modificado por un tercero.
Vinculación: trata de asociar el emisor con una clave.
Autenticación: consiste en garantizar que el mensaje ha sido emitido por un determinado agente.
Para conseguir estas propiedades la criptografía usa diversos elementos como algoritmos de cifrado simétricos, asimétricos o híbridos, claves privadas o claves públicas y privadas, certificados digitales, huellas y firmas digitales. Los algoritmos de cifrado son los que garantizan la propiedad de confidencialidad, tienen la propiedad de que una vez cifrado los datos es muy difícil o se necesita una cantidad de cómputo y tiempo muy elevada para descifrar el mensaje. Hay varios tipos.
Los algoritmos simétricos
Estos algoritmos utilizan la misma clave tanto para cifrar la información como para descifrarla. Son rápidos y a misma longitud de claves más seguros que los de clave asimétrica pero plantea el problema de como intercambiar la clave privada de forma segura a través de la red, para ello se usan los algoritmos asimétricos.
Los algoritmos asimétricos o de clave pública y privada
Este tipo de algoritmos usan dos claves para realizar el proceso de cifrado. Cada usuario posee dos claves, una pública y otra privada. La clave pública de cada par de claves se puede compartir a cualquier otra persona, el que quiera enviarle un mensaje cifrado al propietario de esa clave pública lo cifrará con la clave pública, el mensaje solo puede ser descifrado con su clave privada asociada que solo conoce su propietario. De esta manera los algoritmos asimétricos evitan el problema de como compartir la clave de los algoritmos simétricos ya que en este par de claves hay una pública que puede ser compartida.
Sin embargo, los algoritmos de clave pública y privada no solucionan todos los problemas de seguridad por si solos, está el problema de confianza en la clave pública, es decir, estar seguros de que la clave pública es realmente del destinatario al que pretendemos enviar un mensaje y no la de alguien que se ha colacado en medio del emisor y receptor con la intención de realizar un ataque «man-in-the-middle». Para ello podemos confiar en una tercera parte en la que confiamos, si nosotros confiamos en esa autoridad y esa autoridad certifica que la clave pública es de quien dice ser podemos confiar en que el mensaje será solo legible por destinatario y propietario de esa clave pública, aquí es donde entran las autoridades de certificados. Para certificar las claves públicas se emplean certificados y firmas digitales.
Los algorítmos híbridos
Este tipo de algoritmos aprovechan y combinan lo mejor de los algoritmos simétricos y asimétricos. Para cifrar un mensaje se genera una clave simétrica, se usa un algoritmo simétrico para cifrar el mensaje con la clave generada y la clave usada para cifrar el mensaje se cifra a su vez con la clave pública (algoritmo asimétrico) del destinatario. Posteriormente cuando el destinatario recibe el mensaje descifra con su clave privada la clave con la que fue cifrada el mensaje y con la clave descifrada usando el algorítmo simétrico se descifra el mensaje. En el siguiente esquema se puede apreciar el proceso:
GPG (Gnu Privacy Guard)
Esa es la teoría básica, ahora veamos como utilizar GnuPG que es una implementación libre de PGP (Pretty Good Privacy) y sacar provecho de esta entrada y la criptografía. Crearemos una clave pública y privada, cifraremos y descifraremos un archivo y verificaremos su integridad. A continuación los comandos en orden para generar el par de claves (se nos guiará en el proceso), ver su huella digital, exportar la clave pública y exportar la clave privada para conservarla en un archivo.
El parámetro --armor sirve para codificar la salida en formato texto, con cualquier editor de texto podremos ver su contenido (aunque lo que veamos sea una sopa de letras). Este comando es combinable con otros con similar resultado. Entre usar o no usar armor depende de nuestras necesidades, sin --armor el resultado ocupa menos pero es dificilmente legible por un editor de texto y con --armor el resultado ocupa más pero es legible por un editor de texto.
Si enviamos la clave pública a un servidor de claves para que otros usuarios puedan descargarse nuestra clave y verificar los mensajes que enviamos es aconsejable generar un certificado de revocación para poder revocar la validez de la clave en caso de que su seguridad haya sido comprometida.
Como cifrar un archivo con GPG
Esto generará un archivo del mismo nombre que el que firmamos pero con
las extensión .gpg añadida al final, en este caso se generaría un
archivo de firma secret.zip.gpg (podemos usar el parámetro --armor y se
creará el archivo con extensión .asc). Con -r indicamos el destinatario del mensaje, necesitaremos su clave pública para cifrar el archivo y que solo el destinatario pueda descrifrarlo con su clave privada.
Como firmar un archivo con GPG
Con -u indicamos la clave que realizará la firma. Si no necesitamos cifrar el archivo para garantizar su confidencialidad pero queremos garantizar que no es modificado hasta llegar al receptor y su origen, es decir queremos garantizar su integridad y autenticidad, podemos firmarlo digitalmente.
Como descifrar y verificar un archivo con GPG
Para descrifrar un archivo:
Si hacemos alguna modificación al archivo e intentamos descifrarlo veremos que el programa nos alerta de que el archivo ha sido modificado, tal como podría ocurrir si en la transmisión del mensaje hubiese sido interceptado y modificado. Para verificar la intergridad de un archivo hacemos:
Para crear la clave también podemos emplear la aplicación Seahorse o Contraseñas y claves de GNOME. O si la hemos creado mediante comandos con GnuPG importarla en esta aplicación además de almacenarlas en un depósito seguro de claves. Usando Seahorse para generar una par de claves GnuPG no necesitamos usar la terminal y los comandos anteriores pero el proceso nos pide los mismos datos.
Sehaorse también tiene opciones para importar y exportar las claves GnuPGP a y del anillo de claves.
Aunque enviemos los datos cifrados y hagamos inaccesible el contenido no es sinónimo de privacidad, a veces saber simplemente que un mensaje se envío, a que hora, de que longitud, duración, tamaño, desde donde, a donde y a quien puede ser información suficiente para extraer conclusiones, patrones o sobre que trataba la información entre otras cosas, sino preguntarle a la NSA/CSS que de esto saben bastante por las recientes informaciones de espionaje realizadas impunemente y en secreto por el gobierno de los EEUU, esa recolección ingente de datos son una muestra de ello.
Mitad del año y otros seis meses más que han pasado, ya queda menos para las esperadas vacaciones ;). Como he empezado a hacer desde hace un tiempo en esta entrada quiero recapitular las 25 entradas que he escrito durante este primer semestre de 2013, una por semana publicada normalmente durante la tarde de los viernes. Esta será la cuarta Hemeroteca aunque lleve el número #3. Si te has suscrito a mi blog hace poco es buen momento para revisar alguna entrada anterior que he escrito y si hace un tiempo que estabas suscrito puedes releer alguna entrada que ya vistes y que en su momento te interesó o que por falta de tiempo dejaste de leer. Muchas de las entradas que he escrito durante este semestre han estado relacionados con la programación de una o de otra manera.
En mi blog no podía faltar unas cuantas entradas sobre Apache Tapestry en las que he tratado asuntos importantes que toda aplicación debe abordar y que el framework empleado para desarrollar debe facilitar. Desde servicios REST pasando por la seguridad, persistencia en base de datos, una típico mantenimiento CRUD hasta pruebas unitarias y de integración.
Esta es otra serie de artículos que me ha ocupado varias semanas, en ella explico varias cosas del estado del arte actual sobre Javascript, como es la programación mediante módulos con RequireJS, motores de plantillas con Mustache, logging hasta los tan de moda frameworks MVC (Modelo Vista Controlador) y las pruebas unitarias también para el código javascript.
Los servicios REST también están siendo ampliamente utilizados y es que permiten a otras partes consumir los servicios que proporcionemos como si fuesen servicios web o permiten proporcionar una interfaz usando correctamente la semántica del protocolo http.
Si quieres encontrar más artículos como estos puedes visitar las anteriores ediciones de la hemeroteca de este blog: Hemeroteca #2 Hemeroteca #1 Hemeroteca #0
Las copias de seguridad son imprescindibles, si alguien piensa que no es que nunca se le ha estropeado el ordenador ya sea porque ha fallado el hardware o por una actualización que ha corrompido el sistema de arranque o peor por que el disco duro se ha estropeado, eso o no tiene datos importantes que tener a buen recaudo. Si aún no te ha pasado que se haya estropeado el ordenador y te has quedado sin esa información que no quieres perder quizá hayas tenido suerte pero has de saber que tarde o temprano te pasará y para no perder esa información los «backups» son imprescindibles.
Una vez que tener copias de seguridad nos parece importante y tenemos respondida la pregunta de por qué, se nos plantean algunas otras preguntas:
¿De que hacer copias de seguridad?
¿Cada cuanto hacer copias de seguridad?
¿Que características han de tener las copias de seguridad?
¿En que medio guardar las copias?
¿Como hacer las copias de seguridad?
Y tan importantes como las anteriores, ¿como recuperar los datos?
Cada pregunta tiene diferentes respuestas según el usuario, entorno o la información de la que hacer las copias de seguridad. A la pregunta de que hacer copias de seguridad cada uno deberá conocer que información no quiere perder en caso de desastre, cuanto cambian los datos y que se perdería en un periodo de tiempo (día, semana, mes, ...), si las copias deben estar comprimidas para ahorrar espacio o cifradas y finalmente dependiendo de algunas respuestas anteriores que herramienta o herramientas usar.
Yo hasta ahora no usaba ninguna herramienta usaba el simple y manual método de copiar y pegar archivos del disco duro del ordenador a un disco duro externo. Cuando no tenía disco duro externo las copias de seguridad las hacía en CD y DVD pero hacerlas en un medio óptico como los anteriores no los recomiendo porque son lentos de realizar, en estos días no tienen capacidad suficiente para guardar todo y por tanto deberemos tener varios volúmenes y finalmente lo más importante porque son unos medios poco fiables. Dado el precio y capacidad que tienen hoy en día los discos duros USB externos además de su velocidad de transferencia es más recomendable esta opción y es la que a día de hoy uso. Pero aún con un disco duro externo el método de copiar y pegar tarda un buen tiempo y sigue siendo lento, con 70 GiB de archivos personales que no quiero perder, pero también el hecho de hacerlo manualmente es propenso a que algún día se me olvide hacer la copia de seguridad de todo y por la ley de Murphy ese día fallará el ordenador. Con lo que con esta situación he empezado a buscar alternativas a mi método manual de copiar y pegar.
Empece probando Déjà Dup pero no me ha convencido porque las copias de seguridad las guarda en un formato comprimido (y cifrado si se quiere) de modo que para recuperar los archivos se ha de utilizar la misma herramienta. Para mi una de las características de la copia de seguridad es que siga pudiendo tener accesibles los archivos independientemente de la herramienta. Viendo las posibilidades de los programas de copia de seguridad disponibles en Linux por la que me he decantado ha sido rsync. Es un método simple que mantiene sincronizados el contenido de dos carpetas, copiando los nuevos archivos, borrando los eliminados y solo actualizando los necesarios además de poder hacerse las copias entre dos máquinas diferentes a través de la red. Mediante rsync para hacer una copia de seguridad ahora tardo mucho menos ya que solo se copian los archivos que hayan cambiado además de estar automatizado con un script con lo que resulta más fácil y por ello se pueden hacer más a menudo.
Con el siguiente comando de rsync se puede hacer una copia de seguridad de una carpeta a otra:
La opción -a es una meta opción de utilidad que engloba otras con las más comunes para hacer copias de seguridad, -P hace que se muestre el progreso, --delete borra los archivos en la carpeta de destino que se hayan borrado en la carpeta origen.
Otro ejemplo para copiar varias carpetas de la carpeta home de un usuario es, con la opción --files-from, hay que indicar también la opción -r para que las carpetas se copien de forma recursiva:
Este simple comando ahorra mucho tiempo ya que con él no hay que copiar los XXX GiB cada vez que hay que hacer un copia de seguridad, solo se copiará lo que haya cambiado entre la copia de seguridad y el origen, que muy probablemente es una cantidad mucho menor que esos XXX GiB. Con lo simple que es se me hace extraño que haya pasado tanto tiempo haciendo las copias de seguridad manualmente.
Si quieres algunas otros ejemplos de uso de rsync como por ejemplo el como programar las copias de seguridad con cron o quieres conocer otras herramientas en la wiki de Arch Linux tienes unas cuantas más, algunas con interfaz gráfica.
Si sigues este blog desde hace un tiempo sabrás que de vez en cuando comento alguna cosa relacionada aunque sea de forma indirecta con la Raspberry Pi ya que es el computador que uso para realizar las descargas via torrent y para reproducir música principalmente con cmus. Dado que la uso sin ningún entorno de interfaz gráfica sino simplemente conectándome via SSH desde mi portátil y trabajando a través de comandos desde la terminal casi todo lo que quiera hacer con ella lo tengo que hacer a través de la terminal.
Para escuchar música suelo hacerlo de varias maneras: escuchar mi propia música en mp3 con cmus, escuchar radios que emitan por internet vía streaming o también las radios de Jamendo a través del reproductor de su página web. Jamendo ofrece una API a través de la cual se pueden escuchar las radios. Esto es lo necesario para poder escuchar las radios de Jamendo desde la RPi utilizando la terminal. Como quería aprender algo de Pyhton y es uno de los objetivos RPi me puse manos a la obra a hacer un pequeño programa, aún no sabiendo nada de este lenguaje de programación, que me permitiese escuhar cualquiera de las radios de Jamendo via streaming.
El resultado lo podéis encontrar en mi repositorio de GitHub en un archivo que no llega a las 100 líneas de código Python. Básicamente utiliza la API Rest que ofrece Jamendo para los desarrolladores que devuelve la información en formato JSON. Permite listar las radios disponibles en Jamendo según el estilo de música y los identificativos que utilizaremos luego para indicar al programa la radio que queremos escuchar.
Para usar el programa necesitaremos tener Python instalado y dado el que reproduce la música realmente es el programa mpg123 necesitaremos instalar también su paquete.
Después de habernos descargado el programa y habiéndole dado permisos de ejecución con:
Podemos obtener un listado de las radios con su nombre e identificativo usando:
Una vez que sepamos la radio que queremos escuhar lo haríamos con, en caso de que fuese la radio Classical:
Este programa se puede usar en cualquier sitio que tenga esas dependencias aunque en un ordenador de escritorio o portátil no nos sea imprescindible como en el caso de la Raspberry Pi ya que en los primeros podremos usar el reproductor web de Jamendo. Aún así aquí está para quien le pueda resultar útil como a mi. El programa no capturará todas las condiciones de error que se puedan producir, tener en cuenta que está realizado por alguien que sabe programar, conoce el lenguaje y API de Java pero no de Python. En cualquier caso si alguien cree que puede ser mejorado solo tiene que comentarmelo, enviarme un parche, ... ;)
Si nos gusta la música probablemente tendremos una colección amplia de canciones de diferentes artistas y géneros, sin embargo, por muy amplia que sea tal vez en algún momento nos apetezca escuchar algo diferente a la música que tenemos o nos apetezca escuchar la música del momento a través de alguna radio que emita por internet via streaming.
Muchas radios ya emiten a través de internet y por tanto las podemos escuchar desde el ordenador siempre y cuando tengamos una conexión a internet. Si no queremos usar el applet flash que normalmente proporciona cada radio en su propia página web podemos usar VLC, Banshee o incluso desde la terminal o consola. Para esto último ello basta con que tengamos instalado el programa mpg123 y conozcamos la URL en la que emite la radio lo cual a veces no es sencillo ni viendo el código fuente de la página del reproductor del applet flash pero escuchar música o radios por internet disponemos de varias opciones más, estas son algunas de ellas:
VLC
El reproductor multimedia VLC además de reproducir vídeos, música en prácticamente todo formato conocido de medio puede reproducir música por internet de forma bastante sencilla para el usuario. Solo hay que ir a la opción Ver > Lista de reproducción en la opción Internet de la lista de reproducción disponemos de varias opciones en cuanto a música y radios:
Free Music Charts: aunque parece que esta opción ha dejado de actualizarse desde hace bastante tiempo.
Icecast Radio Directory: esta es una lista de radios que emiten por internet, hay un montón de radios que podemos escuchar solo deberemos encontrar una que nos guste. Algunas de las radios emiten la música que está pegando fuerte en el momento.
Jamendo Selections: Jamendo es una colección de música en la que la mayor parte de la misma esta con licencia creative-commons que nos permite además de escucharla también con el propio reproductor de Jamendo en su propia página web poder descarganos las canciones a nuestro ordenador en formato mp3. Con VLC podemos escuchar la música emitida en las radios de Jamendo, hay radios para varios estilos de música: Rock, Pop, Jazz, Dance, Hiphop+Rap, World+Reggae, Lounge+Ambient. También tenemos una lista de las 100 pistas más populares, además de cada estilo junto con las 100 y 20 pistas más populares de la semana.
El programa mpg123 nos permite escuchar música desde la linea de comandos con un consumo ridículo de recursos y sin necesidad de un programa con una interfaz gráfica, lo que nos puede ser útil para la Raspberry Pi. Tan sólo deberemos conocer la URL en la que emite la radio. La mayoría de las radios del Icecast Radio Directory proporcionan un enlace M3U con la dirección de la radio y algunas radios de cada país como el caso de la radio nacional de España (RNE):
Teniendo la dirección URL de la radio la reproducimos con:
cmus
cmus es un reproductor de música basado en la consola que además de permitirnos escuchar nuestra música local nos permite también escuchar las radios que emitan via streaming. Al igual que con mpg123 solo necesitaremos la URL en la que emite la radio. Una vez que tenemos la URL y cmus iniciado deberemos teclear lo siguiente para añadir la radio a nuestra colección de música en cmus:
La ventaja de cmus sobre mpg123 es que no hará falta que recordemos o obtengamos la URL cada vez que queremos reproducir una emisora ya que con los comandos anteriores, dentro de cmus quedarán añadidos a nuestra librería en el artista «Stream». En el siguiente enlace puedes encontrar un pequeño manual del uso básico de cmus.
Jamendo
Jamendo es una colección de música realizada por artistas no tan comerciales como la que solemos escuchar normalmente en las radios y que muchos artistas publican sus creaciones con una licencia creative-commons que nos permite incluso descargarla para un uso privado por lo que si estamos cansados de escuchar siempre lo mismo puede ser un viento de aire fresco para nuestros oídos además de poder descubrir nuevos grupos. La música la podemos escuchar desde la propia página de Jamendo con el reproductor integrado en su web con el navegador. Podemos escuchar cualquiera de las radios con diferentes estilos de música o utilizar el buscador para seleccionar algún estilo de música más específico.
Si quieres escuchar las radios de Jamendo desde la terminal o desde la Raspberry Pi puedes hacerlo utilizando este reproductor programado en Python.
En definitiva 4 formas diferentes de poder variar lo que solemos escuchar.
Normalmente mediante contraseña nos conectamos a la máquina remota mediante el siguiente comando:
Esto nos pedirá la contraseña del usuario con el que trabajaremos en la máquina remota, en este caso la contraseña del usuario raspberrypi, y la deberemos introducir cada vez que realicemos la conexión. Si nos conectamos varias veces, realizamos conexiones a diferentes máquinas o nos conectamos con diferentes usuarios más pronto que tarde nos cansaremos de introducir la contraseña constantemente además de tener que estar recordando cada una de ellas si trabajamos con diferentes usuarios y asignamos a cada uno de ellos una diferente.
Todo esto se puede solucionar usando una clave privada y otra pública SSH con las que no necesitaremos proporcionar ninguna contraseña ya que será la clave privada la que nos autenticará. No necesitaremos proporcionar ninguna contraseña siempre y cuando no protejamos la clave privada mendiante una contraseña para poder usarla.
El par de claves SSH se generan con, se pueden utilizar otros algoritmos como RSA y DSA aunque ECDSA es el recomendado por OpenSSH por ofrecer la misma seguridad con un menor tamaño en bits para las claves. Sin embargo, en el ejemplo usaré RSA por el siguiente bug de GNOME:
Al final del proceso veremos la huella digital de la clave, si en algún otro momento deseasemos ver la huella alfanumérica o visual podríamos hacerlo con:
Una vez que disponemos del par de claves deberemos subir la clave pública a la máquina que posteriormente nos conectaremos identificandonos con la clave privada. Lo hacemos con:
Esta clave pública quedará como autorizada para la máquina y usuario indicados y será añadida al archivo ~/.ssh/authorized_keys en la máquina destino. Si posteriormente quisieramos desautorizar alguna clave solo deberemos borrar la linea de la clave de ese archivo. Posteriormente deberemos indicar en la máquina origen las identidades que queremos que proporcione el comando SSH cuando nos conectemos a alguna máquina con:
Si no hemos protegido la clave privada con ninguna clave la identidad quedará añadida con el comando SSH posterior, si hemos protegido la clave privada deberemos introducir la contraseña para poder añadir la identidad.
Finalmente, nos conectaremos a la máquina con el comando SSH y accederemos a la máquina destino sin tener que proporcionar ninguna clave:
El software libre y Linux es sorprendente, a veces nos surge una necesidad que no sabemos como resolver pero en el mundo del software es muy probable que el mismo problema se lo haya encontrado otra persona antes así que lo primero es buscar en internet, foros y ver cuales son las respuestas que obtiene esa persona que pregunta con el mismo o un problema parecido al nuestro para ver si alguien ha dado con la solución. Dependiendo del problema quizá descubramos un programa específico para resolver el problema.
Este es el caso que me ha surgido recientemente con la Raspberry Pi. Lo explico, a la RPi me conecto por SSH y dado que si se cierra esa conexión SSH se terminan todos los procesos lanzados en esa conexión SSH tengo que tener encendido el ordenador y la conexión SSH abierta hasta que termine de hacer lo que estaba haciendo. En la mayoría de los casos esto no es un problema pero para dejar la RPi reproduciendo música con cmus sí lo es ya que si se cierra la conexión SSH se termina el reproductor y se deja de escuchar la música, con lo que no puedo apagar el ordenador y dejar únicamente la RPi encendida que para reproducir música es mucho mejor que un ordenador porque no hay ruido de ventiladores y discos girando y la música se escucha más limpia sin ruidos adicionales por muy bajos que sean.
Screen, es una herramienta que nos resolverá ese problema además de proporcionarnos alguna funcionalidad adicional interesante. Con esta herramienta podemos dejar una terminal viva y sus procesos ejecutándose aunque se cierre la conexión SSH. Su uso es conectarnos mediante SSH de forma normal, ejecutar:
...que lanzará una segunda terminal en la sesión SSH y cuando queramos dejar la terminal de screen viva ejecutar CTRL+A y a continuación CTRL+D y ya podremos cerrar la terminal SSH original con exit, la terminal de screen y los procesos se seguirán ejecutando. Otra característica de screen es que podemos reconectarnos más tarde a la terminal de screen que dajamos viva, para ello nos volvemos a conectar mediante SSH y ejecutamos:
por si este fuera poco el volvernos a reconectar a la terminal de screen más tarde lo podemos hacer desde cualquier ordenador, no tiene por que ser el mismo ordenador desde el que iniciamos la terminal de screen, con lo que podemos iniciar los procesos en un ordenador, desplazarnos de sitio y continuar en otro. Lo que en algunos otros casos puede ser muy útil.
El paquete para instalarlo en Arch Linux es screen y lo hacemos con:
El año pasado realice el calendario tematizado de Arch Linux y este en un poco de tiempo lo he modificado y adaptado al año 2013. Se trata de un modelo que después de varias dobleces y partes que hay que pegar se convierte en un dodecaedro que podemos tener encima de la mesa además para consultarlo alguna vez para decorar. Si eres usuario de otra distribución que no sea Arch Linux puedes descargarte el archivo svg contenido en el archivo zip del enlace anterior y modificarlo para adaptar los colores y el logotipo ya uses Fedora, OpenSUSE, Ubuntu, Mint, Debian, ...
Calendario Arch Linux 2013
El 2012 al final se me pasó y no lo construí ya que no dispongo de impresora, este 2013 espero poder imprimirlo en alguna fotocopistería y colocarlo junto a Tux y el cheat cube de Arch Linux. A continuación está proceso de ensamblado del calendario calendario y el resultado final.
Además de este calendario también hace un poco de tiempo también adapté un cheat cube de Ubuntu a la distribución Arch Linux por si alguien le coge gusto a esto del papel, probablemente para un usuario avanzado no sea especialmente útil más bien tiene una funcionalidad decorativa.