Esto es un pinche desmadre… queria hacer uso de las llaves de ssh de manera rapida y eficiente y me encontre con que no hay un how-to para eso de hecho tuve que leer 3 how-to… bueno pues aqui va el mini-how-to de como carajos hacer un ssh sin password y claro de manera segura.
how-to relacionados.
No more passwords with ssh
Using ssh-agent with ssh
Key chain [Gentoo]
Lo primero es crear nuestras llaves
ssh-keygen -t dsa
El passphrase es importante, aqui la idea es no dejarlo en blanco usar uno bueno por una vez en la vida.
ahora necesitamos copiar nuestras llaves publicas a donde nos queremos conectar esto esta de flojera por que es pelearse con ~/.ssh y ondas asi, por lo mismo ssh incluye una cosa que lo arregla
ssh-copy-id
ssh-copy-id [-i [identity_file]] [user@]machine
es decir para agregar nuestra llave publica (es decir pa no meter la pata)
ssh-copy-id -i .ssh/id_dsa.pub usuario@maquinaremota
Password: (si pues que se le va a hacer nos va a pedir nuestro password no la passprhase la primera vez, esa es la idea)
Now try logging into the machine, with «ssh usuario@maquinaremota'», and check in:.ssh/authorized_keys
to make sure we haven’t added extra keys that you weren’t expecting.
Si hacen el ssh ahora les va a pedir el passphrase que si se vieron duchos sera mas largo y dificil que el password… aqui viene lo interesante, ssh-agent se supone facilitaria las cosas, pero como suele suceder es un desmadre y tiene uno que andar haciendo circo, maroma y teatro para hacerlo funcionar asi que mejor usamos un script que ya lo hace «keychain»
sudo apt-get install keychain
(digo si no lo tienen, obvio estoy pensando que esta es su laptop o su maquina de casa, donde tienen root y obvio donde no lo usan como en win)
keychain
Neceistamos decirle cual llave…
pues bueno creamos al principio de este borlote el ¿id_dsa recuerdan?
keychain id_dsa
KeyChain 2.5.1; http://www.gentoo.org/proj/en/keychain/
Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL* Initializing /home/usuario/.keychain/maquina.local-sh file…
* Initializing /home/usuario/.keychain/maquina.local-csh file…
* Starting ssh-agent
* Adding 1 ssh key(s)…
Enter passphrase for /home/usuario/.ssh/id_dsa: (esta es la prueba de que somos quien decimos ser, funciona para toda nuestra sesion)
Y nos falta un paso decirle al keychain que set va a usar
source .keychain/maquina.local-sh
Bueno a resumidas cuentas
1) Creamos nuestra llave dsa para ssh (key-gen -t dsa)
2) copiamos nuestra llave publica a nuestras maquinas (ssh-copy-id -i .ssh/id_dsa.pub usuario@maquinaremota) a cada una le necesitamos pasar nuestro password de esa maquina o no nos va a dejar
3) usamos keychain pa activar nuestra llave local (keychain id_dsa) y le damos nuestro passphrase (funciona con gpg tambien pero tengo flojera ya, digamos que hacer un mini-howto no es mi costumbre)
4) Especificarle que variables de entorno vamos a querer usar para nuestras conexiones de ssh y keychain estos se encuentran en .keychain/maquina-shell (source .keychain/maquina.local-sh)
5) ssh a toda maquina que tenga nuestra llave publica (a la que hayamos hecho el paso 2)
**Advertencia: Es muy facil meter la pata, esto es una mugre receta, el autor (o sease yo no implica ninguna garantia y se deslinda de que metas la pata), tambien supone que mas o menos tienes idea de que es un shell y mas aun de que tienes idea de para que sirve ssh, asi que si meten la pata… no sera la primera ni la ultima ;)**
PS: El paso numero 4 me faltaba y ha sido agregado, tambien las ligas a los how tos usados, queda pendiente el agregar el entorno al .basrc o .baspro_file pero habiendo llegado hasta aqui supongo es mas facil, actualizado a las 16:59hrs (GMT-600) 15/12/2005