A Django site.
February 2, 2010

Rodolfo Pilas
pilas
Rodolfo Pilas
» Automatizando SSH

Algnas veces me ha tocado escriir líneas de ssh bastante complejas, como por ejemplo:

ssh -1 -p 23 -l root -i /etc/ssh/key01 -o CheckHostIP=no 192.134.27.24

que realmente terminan siendo un incordio, cuando esa conexión debe ser vuelta a realizar para repetir tareas de administración remota. Entonces, este artículo es un resúmen de algunos trucos de automatización que he logrado aprender hasta ahora, para hacer mi ssh más fácil y mi vida también.

1. el nombre

Escribir la IP 192.134.27.24 cada vez que me conecto es antidiluviano y no escala a IPv6. Así que lo ideal es disponer de un DNS bien configurado al cuál recurrir.

Lamentablemente en redes internas he visto que asignan nombres a las máquinas que resultan más difíciles que la dirección IPv4 misma, por ejemplo: sssd2p1r3db.sss.com, que significa sss es el nombre de la empresa, datacenter 2, piso 1, rack 3, db pues es el server de base de datos. Fantástico! Cómo no recordarlo? Claro, despues uno ve que terminan usando la IP.

Así que llamemos a nuestro servidor 192.134.27.24 sssd2p1r3db como “tito” (o cualquier otro nombre que me resulte fácil de recordar)

Para que funcione el ssh a tito debo llegar a la IP. Y esta tarea de personalización de los nombres en la red la hace el archivo /etc/hosts. Edito el archivo y agrego:

# Servidor sssd2p3r3db
192.134.27.24 tito

A partir de ahora, todo lo que yo haga a nivel de red con el nombre “tito” va a funcionar desde ssh tito, ping tito, hasta http://tito en el Firefox.

2. las opciones ssh

Las opciones del ssh que son necesarias para esta conexión de ejemplo son: -1 -p 23 -l root -i /etc/ssh/key01 -o CheckHostIP=no, que no es necesario explicar su significado, pues todas estas opciones están a un man de distancia.

El archivo que permite automatizar todo esto para todos los usuarios es /etc/ssh/ssh_config y para un usuario en específico es el archivo $HOME/.ssh/config. Edito el archivo y creo una entrada Host acorde a mis necesidades:

Host tito
Protocol 1
Port 23
User root
IdentityFile /etc/ssh/key01
CheckHostIP no

Y ya está!

Ahora puedo escribir ssh tito y mi conexión va a ser realizada exactamente como si escribiera toda la linea del principio.

Solo una aclaración: la sentencia Host funciona por string, es decir que si escribo ssh 192.134.27.24 no va a producir el mismo efecto de levantar los datos del ssh_config, aunque me esté conectando al mismo servidor.

3. Bash completion

Y por último, hacer que mi Bash permita usar tabulador para los nombres caprichozos y fáciles que he colocado a mis servidores… porque?, a ver: nadie pretende que me acuerde que el server se llama “tito”, es mucho más acordarme que empieza con “t” y sigue con “algo” ;)

Edito ~/.bashrc y agrego:

_completossh ()
{
actual=${COMP_WORDS[COMP_CWORD]};
COMPREPLY=($(compgen -W ‘$(cat /etc/ssh/config | grep “^Host\b” – | sed -e “s/Host //”)’ — $actual))
}
complete -F _completossh ssh

Y ahora puedo escribir ssh t + tabulador, y me completará “tito”. Y si tengo más de un servidor que comience con “t” pues dar dos veces tabulador y me muestra la lista.

4. Algunos documentos para leer del tema

June 10, 2008

Rodolfo Pilas
pilas
Rodolfo Pilas
» Actividad Terminal

La actividad Terminal es un software que viene incluído en la XO por defecto. No obstante, una vez que se inicia, no dispone de ayuda ni se puede entender su funcionamiento, salvo que se se sepa su uso específico.

Objetivos: Conocer algunas funciones básicas sobre la actividad Terminal de poder sacar provecho de la misma. El objetivo específico es que los usuarios de XO puedan entrar a la actividad Terminal a realizar tareas básicas con comodidad. Que conozcan el potencial y flexibilidad de esta actividad como una forma de interfaz con el computador.

Público Objetivo: Personas sin conocimientos sobre la actividad Terminal.

Requisitos: Disponer de una XO para las prácticas ya que se trata de una tutoría práctica.

Estructura: Dos partes de 1:30hs a 2hs cada una.

Tutorial dictado en:

April 10, 2008

Nicolás Varcarcel
nxvl
Nikolas Valcarcel
» My commands top 10

As the meme goes on Planet Ubuntu, here are my most used commands:

On Buster (my new laptop):

[buster:~] nxvl$ history|awk ‘{a[$2]++ } END{for(i in a){print a[i] ” ” i}}’|sort -rn|head
64 cd
58 ls
42 sudo
33 buscar
33 bajar
30 clear
21 nohup
20 bzr
14 irc_amctl
13 iwconfig

It only says it’s new and i have installed a lot of packages, in a month i need to update this list.

At LaFume (work):

[LaFume:~] nxvl$ history|awk ‘{a[$2]++ } END{for(i in a){print a[i] ” ” i}}’|sort -rn|head
89 cd
86 ls
53 sudo
32 oowriter
30 vi
28 clear
15 history
12 ping
10 ssh
9 nohup

Some aliases you see there:
alias bajar=’sudo apt-get install’
alias buscar=’apt-cache search’
alias irc_amctl=’ssh XX.XX.XX.XX -l YYYYYYY’

And yes, if you have already notice it i pick my hostnames from here.

March 22, 2008

Gustavo Picón
tabo
tabo :: para todos y para nadie
» Meme: Top 5 de aplicaciones gratuitas

Meme originado en Inbitado de José "Hiro" Kusunoki, rebotado hacia mí por Arturo Goga, y bueno, luego de tanta buena lectura en su blog lo mínimo que puedo hacer es responder, asi que aquí va mi top5:

1) Linux/FreeBSD

beastie_and_tux

Empate técnico en sistemas operativos (que también son programas): Linux lo uso en todos mis desktops y hasta en mis dispositivos móviles, FreeBSD va en todos mis servidores (ayer nomás instalé un firewall con el nuevo FreeBSD 7).


2) Python


Python

Python. Amor a primera vista, es posiblemente el lenguaje mas conciso, elegante y balanceado que he usado. Maduro, con infinidad de librerías, frameworks y aplicaciones, es hoy en día lingua franca en el mundo del Open Source. Una de las ventajas del lenguaje es que la mayoría de sus usuarios son programadores profesionales, a diferencia por ejemplo de ser sysadmins (perl) o diseñadores gráficos (ruby), por lo que en promedio el código de las aplicaciones es de mucho mayor calidad. Tengo la suerte de tener un trabajo en el que me pagan por programar en Python, asi que va en mi lista de aplicaciones indispensables.

3) Vim

Vim

Para alguien que vive en UNIX, la elección de un editor de texto tiene una connotación religiosa, algo que los usuarios de sistemas inferiores jamás entenderán. vi es parte de POSIX 1003.2 asi que tengo la garantía que lo encontraré en cualquier *NIX. El clon que uso, vim, es el mas popular en este momento y es bastante extensible con plugins. He publicado mi .vimrc y bufman.vim, un plugin de manejo de buffers. Y recientemente (hace un par de años) me he vuelto adicto a project.vim. Un color scheme? el default, pero cuando me siento aventurero uso metacosm.

Al menos una vez al año me paso una semana probando otros editores, incluido emacs, que lamentablemente no puedo usar ya que no tengo 45 dedos. De los editores gráficos me gustó mucho la versión profesional de Komodo IDE, pero al igual que TODOS los editores en modo GUI tiene 2 problemas:
a) A primera vista tienen infinidad de características, pero no llegan a la riqueza de vi o emacs
b) No lo puedo usar en un shell remoto

4) OpenSSH

OpenSSH

Este no es un blog (tan) nerd, asi que este sea posiblemente el programa mas "raro" de la lista, pero OpenSSH es un software con el que simplemente no podría trabajar tranquilo: encripta todo el tráfico de red con el que trabajo. Es gracias a OpenSSH que puedo dormir en las noches, y las características de forwarding hacen que hasta el día de hoy me salgan lágrimas de emoción.

5) bash

Mi habitat natural es el shell de UNIX, y el shell de mi elección es bash. Lo uso a diario y sin él mi vida sería totalmente distinta: nunca me acostumbré a csh y mis coqueteos con zsh no llegaron a mayores. En combinación con screen se crea una relación simbiótica imbatible y que uso los 365 días del año.

tags: , , , , , ,

February 1, 2008

Nicolás Varcarcel
nxvl
Nikolas Valcarcel
» What are your most frequently used commands?

[LaFume:~] nxvl$ history|awk ‘{a[$2]++ } END{for(i in a){print a[i] ” ” i}}’|sort -nr|head
110 ls
97 cd
51 vi
18 man
17 while
16 echo
13 oowriter
12 clear
11 debuild
10 lsdiff