Terminator - Consola multiventana

0 comentarios

Hoy os traigo información sobre una herramienta que para mi es indispensable: Terminator.

Para mi que trabajo con varias máquinas a la vez (hasta 4 simultaneas, de momento), a veces es necesario tener abiertas varias terminales. Con Terminator tengo la posibilidad de tener 4 terminales en una misma ventana, al estilo de Konsole de KDE, pero con la particularidad añadida de que Terminator te permite crear grupos de terminales, con lo cual lo que escribas en una ventana del grupo puedes enviarlo a todas al mismo tiempo. Útil si tienes que realizar una misma tarea en varias máquinas, ya que escribiendo solo una vez la realizas en todas las máquinas a la vez.


Personalmente, desde que uso Terminator, trabajo más cómodo, espero que a mis lectores también os ayude.

Para instalarlo solo debeis instalarlo desde aptitude, si usais una distribución basada en Debian (Debian, Ubuntu...):

$ aptitude install terminator


¡Hasta la próxima!

Conectar a Wifi desde el terminal

0 comentarios

Buenas, después de un tiempo sin escribir (por falta de tiempo), traigo un nuevo artículo, corto pero útil.

Si instalamos un servidor Linux, por poner un ejemplo, es posible que necesitemos conectarnos a través de wifi a nuestra red local. Hoy os pondré los pasos necesarios para hacerlo. Según vaya configurando mi portátil del trabajo, iré escribiendo documentos sobre la instalación y configuraciones más habituales y/o útiles para tener un buen entorno de desarrollo configurado.

Vayamos al lío,

1º Empezaremos buscando la información de la red WiFi a la que queremos conectar. Haremos iwconfig si no sabemos el nombre de la interfaz lo miraremos con "iwconfig". Suponemos que es wlan0:

$ iwlist wlan0 scanning

2º Buscaremos la información ESSID de la red y la dirección MAC del router y los configuramos en nuestra interfaz:
$ iwconfig wlan0 essid $_ESSID 
$ iwconfig wlan0 ap 40:4A:03:XX:XX:XX

3º Se configura la clave de la WiFi (suponiendo que tienes una especificada). Si es una clave ASCII (normalmente lo es), deberás añadir "s:" delante de la clave:
$ iwconfig wlan0 key $_KEY
$ iwconfig wlan0 key s:$_KEY

4º Se obtiene una ip desde el router. Antes de esto, podemos comprobar si hemos introducido bien los datos con "iwconfig"
$ dhclient wlan0

Cambiar nombre del equipo desde terminal

0 comentarios

En algunas ocasiones, es posible que necesitemos cambiar el nombre de nuestro equipo (más posiblemente, un servidor remoto que hayamos adquirido de algún proveedor).

Para realizar este cambio deberemos realizar los siguientes pasos:

1.- Editaremos el fichero /etc/hosts y cambiaremos el nombre antiguo por el nuevo.
2.- Cambiaremos el nombre del equipo en el fichero /etc/hostname
3.- Lanzaremos el script /etc/init.d/hostname.sh para que se apliquen los cambios sin reiniciar.

sh /etc/init.d/hostname.sh

También podemos cambiar el nombre del equipo temporalmente ejecutando la sentencia:
/bin/hostname nuevo-nombre

Conectar a servidor SSH sin contraseña

0 comentarios

Para los que trabajamos continuamente con varios servidores SSH, puede llegar a ser algo extresante tener que escribir siempre la contraseña. Y si además tienes que memorizar varias contraseñas de diferentes servicios, servidores, etc, como es mi caso, puede darse el caso de que cueste recordarlas.

En cualquier caso, por un motivo u otro, puede que cualquier programador o administrador de sistemas prefiera poder conectarse a su servidor SSH sin necesidad de escribir continuamente la contraseña, pero, ¿como hacer esto sin vulnerar la seguridad del servidor?.

La respuesta está en las claves RSA y el fichero authorized_keys de SSH. La cuestión es crear una clave rsa, que almacenaremos en el servidor al que deseamos conectar. A continuación explico los pasos para realizar el procedimiento.

1. Creamos la clave RSA
Para empezar, debemos crear en nuestro cliente la una clave rsa para identificar la máquina. Abriremos una ventana de terminal y ejecutaremos la siguiente sentencia:

ssh-keygen -t rsa
Nos pedirá una contraseña común, que podremos utilizar en caso de querer utilizar esta misma para conectar a diferentes servidores (en caso de que lo subamos a varias máquinas). Es una medida de seguridad más, aunque yo siempre dejo este campo vacío.

Una vez ejecutada la esta sentencia, se creará automáticamente en la carpeta .ssh de nuestro usuario ($HOME/.ssh) un fichero id_rsa.pub que utilizaremos para conectar a nuestros servidores.

2. Enviar la clave al servidor/es
El siguiente paso es enviar la clave al servidor. Con un sencillo comando que nos pedirá la contraseña, ya conseguiremos hacerlo:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]$HOST
Donde $USER es el usuario con el que conectamos al servidor y $HOST la dirección. Con esto ya estaremos listos para conectar al servidor sin necesidad de introducir la contraseña.


CONFIGURACIÓN ADICIONAL
Para los más maniáticos, o aquellos que quieran añadir un nivel más de seguridad al servidor, se puede añadir la opción de que no se pueda conectar al servidor SSH si el equipo no está en el archivo authorized_keys del servidor. Es decir, que solo aquellos que han realizado el paso anterior puedan conectarse.

Para ello se debe editar el fichero /etc/ssh/ssh_config del servidor y añadir las siguientes lineas de configuración:
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes
Reiniciamos el servidor:
sudo /etc/init.d/ssh restart
Y probamos de conectaros mirando los mensajes de conexión (para comprobar que funciona correctamente):
ssh -v [email protected]$HOST
Para realizar esta configuración en varios servidores, basta repetir solo el paso 2 en cada uno de los servidores, ya que la clave RSA será única para el cliente.

Evitar desconexión SSH

4 comentarios

A muchos de vosotros os pasará que debeis conectar a un servidor mediante SSH y realizar varias tareas, pero entre estas puede pasar un cierto tiempo. Por defecto, la conexión SSH se desconecta automáticamente cuando el servidor lleva un rato sin recibir ninguna orden, por lo que se debe volver a reconectar al servidor (e incluso en algunos casos, bloquea la terminal y hay que cerrarla y volver a abrirla).

Esta mañana he encontrado la solución en un blog venezonalo de Fedora.

La mejor manera de mantener la sesión abierta, es hacer que el servidor SSH envíe peticiones cada cierto tiempo para comprobar el estado de la conexión. Esto hace que al haber actividad, la conexión no se cierre. Para hacerlo deberemos aplicar la siguiente configuración:

Cliente
Abriremos el fichero /etc/ssh/ssh_config con nuestro editor favorito y añadiremos las siguientes 2 líneas:

ServerAliveInterval 30
AliveCountMax 4
Servidor
En nuestro servidor SSH abriremos el mismo fichero /etc/ssh/ssh_config para añadir estas otras 2 líneas:
ClientAliveInterval 30
ClientAliveCountMax 4

Esta configuración hace que cada una de las máquinas haga consultas a la otra cada 30 segundos y en caso de recibir 4 errores NOK (errores de respuesta), la conexión se cerrará. De lo contrario se mantendrá abierta.

Disfrutad de una conexión SSH sin cortes.

Botón de +1 con jQuery

0 comentarios

Para los amantes de Google+ y jQuery, traigo una nueva alternativa a la integración del botón +1 que publicó Ricardo Galli en su perfil de Google+. Con esta pequeña modificación del código, se consigue que no se cargue el botón hasta que se haya cargado completamente el DOM de la página, evitando posibles errores.

El primer paso para integrarlo es incrustar este código en el header (entre los tags de tu código). Debes recordar que este fragmento de código se debe colocar después de haber cargado la librería de jQuery

<script type="text/javascript">
window.___gcfg = {lang: 'es'};
$(function () {
    $.getScript("https://apis.google.com/js/plusone.js");
});
</script>

Una vez cargada la api de Google, solo nos falta incrustar el botón en el lugar de la web que hayamos elegido. Para ello debes introducir el siguiente código:

    <g:plusone count="false" size="small">

Para más información sobre el botón de +1, ver otros parámetros posibles o dudas, podeis consultar la web oficial de Google Webmasters donde encontrareis toda la información oficial.

También podréis ver un ejemplo en la sección de noticias de la LVP, al entrar al detalle de una. Por ejemplo: http://www.lvp.es/news/view/148

Apertura de blog provisional

3 comentarios

Buenas noches.

Desde este mismo instante, abre este blog de forma provisional hasta que pueda tener el diseño de mi propio blog donde iré publicando noticias sobre programación y administración de sistemas, así como ejemplos de código de diferentes frameworks y lenguajes.

Se acepta la colaboración de gente, así que si alguien está interesado en publicar, puede contactar conmigo a través de mi correo personal: [email protected] o a través de mi cuenta de twitter @tanque_tm.

Muchos de los que entreis y veais esta "chapuza" pensareis, "en casa de herrero, cuchillo de palo", pero lo peor de todo es que tendreis razón, pero a continuación detallo los motivos por los que he decidido abrir un blog en blogger:


  • Tengo pensado abrir un blog con wordpress, ya que tiene plugins bastante interesantes y la gestión de noticias y usuarios es bastante buena, pero mientras permanezco a la espera del diseño del logotipo y me decante por un diseño por el blog, o pueda diseñar el mío propio, he decidido abrir uno temporal en blogger, ya que después se puede realizar una exportación rápida y sencilla.
  • Mientras no tenga una solución definitiva, aprovecho el servicio gratuito de blogger, que me permite redireccionar mi propio dominio.
  • Últimamente ando excaso de tiempo para ponerme a trabajar en un nuevo diseño, programación de blog, además de estar esperando mi nuevo equipo que ya configuraré como un buen entorno de programación.
  • Porque a pesar de haber podido esperar a tener todo lo anterior, quería reservar ya el dominio y montar algo para empezar a dar a conocer la idea, buscar posibles colaboradores, e ir insertando contenidos.
  • Porque me gustan los retos, y lo de ponerme la meta de ir publicando noticias es uno de ellos, así como la de hacer una migración correcta de blogger a wordpress, ya que esto me dará un nuevo contenido con un tutorial de como hacerlo, en el momento en el que lo haga.
  • Porqué así podré hacer tutoriales sobre la gestión de contenidos en blogger y wordpress y hacer una comparativa en el futuro.
  • Y en resumen y para terminar, porque me ha salido de los santos procesadores, porque hace años que quería hacer algo y esto es solo un primer paso. Pequeño, sencillo pero un paso. Espero que de aquí surja un gran proyecto, o almenos un pequeño proyecto donde pueda acudir yo a consultar recopilaciones mías cuando las necesite, en lugar de volver a buscar de nuevo por la red.
A pesar de que la idea principal de la web es abarcar noticias de programación y sistemas, también puede que publique temas de diseño, aunque al no estar metido en el tema serán minoritarios. Los principales lenguajes de programación (y no tan lenguajes) que intentaré abarcar serán los siguientes:
  • Java
  • PHP
  • C++
  • Python
  • Perl
  • Bash script
  • Javascript
  • CSS2.1 / CSS3
  • XHTML1.0 / XHTML1.1 / HTML5
  • XML, XSL, XSLT
  • Otros lenguajes

Ale, ahora a criticar que he elegido una plantilla feísima, que blogger es una porquería, y demás. Pero es lo que hay, almenos de momento.

Un abrazo y gracias a todos :).