BULMA Bulma amb el projecta Defective by Desing
Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons   |   Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores
CONTENIDOS
. Jornadas de software libre
. Version para PDA
. Enlaces breves
. La asociacion
. Los mas leidos
. Autores [Actividad]
. Ultimos Comentarios
. Todos los titulares!
. Estadisticas
. Guia de estilo
. ¿Sugerencias?
. Wiki
. XML [Ayuda]
Listas de correo
. Archivos bulmailing
. Archivos BulmaGes
Radio libre :-)
. Des de la Xarxa (Archivos)
. Mallorca en Xarxa
Busquedas

+ Enlaces Linux
Ultimos kernels
(01/08/2010 05:10:59)
    
Google


En bulma.net
En internet
SSH con contraseña pública/privada (34833 lectures)
Por Carles Pina i Estany
cpina (http://pinux.info)
Creado el 30/03/2003 23:38 modificado el 30/03/2003 23:38

Muchos de nosotros nos conectamos frecuentemente a otras máquinas por ssh; pero cada vez que nos conectamos tenemos que escribir la contraseña. Al final es un lio, lento, contraseñas fáciles para recordarlas, etc.

Podemos usar SSH con protocolo 2 y usar un esquema de llave pública y privada para tener acceso desde nuestra cuenta a todas nuestras máquinas poniendo la contraseña una sola vez al inicio de sesión (o sin contraseña, pero sólo desde nuestro PC), hacer un icono en nuestro escritorio que nos dé una shell remota,...


Pagina1/1

El procedimiento está probado con Debian Woody, usando el paquete ssh versión 3.4p1-1 (OpenSSH). En otras distribuciones puede variar un poco todo, pero básicamente será lo mismo.

A la máquina a la cual nos queremos conectar le llamaré servidor, y la máquina que usamos para conectarnos cliente.

En la máquina cliente tenemos que generar el par de llaves: pública y privada. Para hacerlo hacemos:

ssh-keygen -t rsa
y nos pedirá la llave privada. Esa llave puede ser diferente a cualquiera anterior, y tiene que ser difícil. Solo lo tendremos que escribir una vez "al día", a la sesión, etc.

Sólo quien tiene la llave privada puede encriptar el "flujo" para que sea desencriptado por nuestra clave pública residente en el servidor. Esa es una forma que el servidor sabe seguro que somos realmente nosotros quien está conectado a él.

Veremos algo así:

carles@pinux:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/carles/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/carles/.ssh/id_rsa.
Your public key has been saved in /home/carles/.ssh/id_rsa.pub.
The key fingerprint is:
fa:a3:f3:52:ad:2a:bc:fc:f1:a4:96:b4:5e:6c:5b:c4 carles@pinux
(Cuando nos pide el fichero podemos presionar Enter)
Hacemos un chmod -R .ssh para asegurarnos que id_rsa sólo lo podamos leer nosotros (Debian ya pone los permisos de id_rsa bien por defecto).

Hecho eso tenemos que enviar el id_rsa.pub a la máquina servidor y añadirle el contenido en el fichero $HOME/.ssh/authorized_keys. P. ej., en la máquina servidor hacemos:

cat id_rsa.cliente >> $HOME/.ssh/authorized_keys
(o sencillamente con un copiar-pegar en nuestro editor de texto)

Para tener las ideas claras, en authorized_keys tenemos las llaves de quien nos puede conectar a nosotros (si nosotros queremos conectar de servidor a cliente tenemos que hacer el key-gen -t rsa en el servidor y ponerlo en el authorized_keys del cliente.

En el fichero de configuración (/etc/ssh/sshd_config)del servidor tenemos que tener al menos:

Protocol 2
PubkeyAuthentication yes
Entonces un /etc/init.d/ssh restart (para que relea el fichero de configuración)y desde cliente podemos hacer ssh servidor, nos pedirá la "passphrase" introducida anteriormente y entraremos en servidor. Si tenemos servidor1, servidor2, servidor3... entraremos en cualquier servidor con la misma "passphrase". Si no hemos puesto nada de "passphrase" podremos entrar en cualquier servidor sin tecler nada (ssh servidor)

Ahora usaremos el ssh-agent y ssh-add para no tener que poner cada vez la "passphrase".

carles@pinux:~$ ssh-agent /bin/bash
Eso lo que hace es ejecutar un /bin/bash pero ssh-agent nos guardará las llaves privadas para los hijos de /bin/bash (todo lo que ejecutemos a partir de ese Bash)

Entonces hacemos:

carles@pinux:~$ ssh-add 
Enter passphrase for /home/carles/.ssh/id_rsa: 
Identity added: /home/carles/.ssh/id_rsa (/home/carles/.ssh/id_rsa)
carles@pinux:~$ 
A partir de ese momento podemos hacer ssh servidor y entraremos al servidor sin que nos pida ninguna contraseña. Evidentemente tambien funciona scp fichero servidor:~ (para copiar fichero al $HOME del servidor).

Si queremos tener esa capacidad en todo el entorno X, podemos, o bien hacer el ssh-agent /bin/bash despues de arrancar (o de forma automática, etc.) o bien ponemos en nuestro $HOME/.xinitrc algo como:

carles@pinux:~$ cat .xinitrc 
ssh-agent /usr/X11R6/bin/icewm
De esa forma, dentro de todo nuestro escritorio/gestor de ventanas tendremos activado el ssh-agent y con un sólo ssh-add añadimos nuestra llave privada.

(En caso que quisieramos que un proceso que no es hijo del ssh-agent tenga acceso a las llaves tendriamos que ponerle las variables de entorno $SSH_AUTH_SOCK y SSH_AGENT_PID hacia el mismo valor que a los hijos de ssh-agent.)

Tambien podemos poner un icono que ejecute:

xterm -T "ssh servidor" -bg black -fg lightgray -e ssh servidor
y de esa forma tenemos con un solo click una xterm en un servidor remoto sin más preocupaciones.

Si nos ausentamos del escritorio y queremos que ssh-agent olvide nuestra llave, hacemos:

carles@pinux:~$ ssh-add -D
All identities removed.
ssh-agent soporta varias identidades y ssh-add tiene más opciones (bloquear las identidades, dar un período de tiempo, etc.) pero lo podéis ver en el man o en la misma ayuda de los programas, ya que para un uso normal no hará falta.

Imprimir
Version para
imprimir

Imprimir
Version
PDF
Comentarios
Es posible que se hayan omitido algunos comentarios considerados poco constructivos
1.  Re: SSH con contraseña pública/privada (31/03/2003 15:17, #13302)
  Por: El cobarde anónimo
Y desde un cliente como Putty para windows como le meto las claves? Es la unica cosa q me retiene de ponerlo..

 
2.  Re: SSH con contraseña pública/privada (31/03/2003 15:54, #13303)
  Por: El cobarde anónimo
Instalandote el ssh-agent que puedes encontrar en la web de descarga del putty. Saludos

 
3.  Re: SSH con contraseña pública/privada (05/05/2004 20:17, #21080)
  Por: Quelo
Con el puttygen.exe (en la web de putty), cargas la key privada i la guardas al formato putty. Después en la rama AUTH le cargas la key y ya esta! Tambien vale para el WinSCP. P.D.: si no quieres ir metiendo llaves y sacando hay una utilidad para putty que se llama pageant.exe (el agent de putty, pero tambien, solo carga claves de tipo PuTTY).

 
4.  Sugerencias (01/04/2003 00:57, #13320)
  Por: Criminal (http://mnm.uib.es/~etanol)
La técnica de pasarle al ssh-agent el shell para que lo ejecute no la sabía :-) Hay otras formas de manejar el ssh-agent. Una de ellas es el keychain y otra es meter un poco de código en el ~/.profile:

YO=`/usr/bin/whoami`
AGENTE=`/bin/ps -u $YO -f | /bin/grep "[s]sh-agent" | /usr/bin/awk '{print \$2}'`
if [ x$AGENTE = x ]; then
  /usr/bin/ssh-agent -s > ~/.ssh_agent
  /usr/bin/env \
   `/bin/cat ~/.ssh_agent | /usr/bin/head -2 | /usr/bin/cut -f1 -d\;` \
   /usr/bin/ssh-add ~/.ssh/id_dsa
fi

. ~/.ssh_agent

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

Disclaimer: Sólo probado con Debian. Con *BSD NO funciona puesto que el comando ps reconoce los argumentos de forma distinta.


 
5.  Re: SSH con contraseña pública/privada (01/04/2003 13:23, #13329)
  Por: NetVicious
Muy bien explicado y sencillito, aunque la parte de conectar con el servidor al cliente puede liar a más de uno que no se lo lea despacito ;-)

Sólo comentar unas cosillas:

- Al ssh-agent se le puede decir que cree claves dsa en vez de rsa e incrementar el número de bits para la clave (por defecto son 1024).

- El nombre del fichero debería de ser authorized_keys2 para así diferenciarlo del fichero del protocolo 1.

- En el .xinitrc o en el .xsession (al gusto de cada uno) se puede meter ya directamente el ssh-add, para ello necesitaremos el ssh-askpass (en debian apt-get install ssh-askpass).

quedando el fichero .xinitrc comentado por Carles así:

ssh-add

 
6.  Re: SSH con contraseña pública/privada (01/04/2003 13:28, #13330)
  Por: NetVicious
mmm, se comió el texto que iba después del <

.....

quedando el fichero .xinitrc comentado por Carles así:

ssh-add < /dev/null
ssh-agent /usr/X11R6/bin/icewm

Lo de < /dev/null es para decirle que utilice el ask-pass para sacar una pequeña ventanita gráfica para preguntarnos la clave al arrancar las X.


 
7.  Re: SSH con contraseña pública/privada (02/04/2003 15:52, #13352)
  Por: cpina (http://pinux.info)
Lo del ssh-add dev/nullsiempre que tengamos el paquete ssh-askpass instalado (en Debian, en otras quizás viene por defecto).

 
8.  Re: SSH con contraseña pública/privada (25/04/2003 14:59, #13928)
  Por: El cobarde anónimo
Su articulo esta muy bueno, pero aun no lo he probado porque no se como crear la relacion de confianza con un servidor solaris o unix, donde colocos las claves publicas en el solari? ya que yo poseo servidores linux and solaris.

 
9.  Re: SSH con contraseña pública/privada (25/04/2003 20:02, #13938)
  Por: cpina (http://pinux.info)
No lo he probado, pero el problema es más de versiones de ssh que de Solaris/Linux/etc. Prueba de hacerlo como el artículo, si no te sale pon aqui qué error te da y pon las versiones de ssh y demás que lo probaría yo también (tengo algun Solaris por aqui...)

 
10.  Re: SSH con contraseña pública/privada (24/10/2003 23:11, #17626)
  Por: El cobarde anónimo
Yo lo estoy intentado en un Solaris 8 con OpenSSH 3.7(La última en sunfreeware) y una Debian Woody OpenSSH 3.4, las versiones las digo de memoria. He probado con la dsa pero no consigo conectar desde debian a solaris sin clave, al reves si he podido, Ideas, sugerencias, de todas formas probare con rsa Bien explicado y claro Felicidades.

 
11.  Re: SSH con contraseña pública/privada (16/05/2003 10:24, #14439)
  Por: coder (http://antipoder.escomposlinux.org)
Hola!

Super util para clusters! chachi :)

Gracias, trucos como estos se agradecen muchisimo.

 
12.  Re: SSH con contraseña pública/privada (05/02/2004 02:32, #19612)
  Por: Anònim
Estoy en Fedora core 1 y al crear la llave la crea bien, pero al ir al home del usuario, dentro de .ssh, no esta la carpeta mencionada, y no encuentro el archivo... alguna idea¿

 
13.  Re: SSH con contraseña pública/privada (22/03/2004 00:06, #20253)
  Por: filete (http://adobo.org)
Buenas, muy buena la explicación, pero me gustaría comentar un pequeño aspecto que es el que me ha traído de cabeza durante un buen tiempo porque no funciona correctamente el tema.
El caso es que el directorio ~/.ssh del servidor debe tener permisos 700 (chmod 700 ~/.ssh) y el archivo authorized_keys debe tener permisos 644.
Simplemente quería hacer el comentario por si a alguien le falla el tema y no sabe por qué.
Un saludín

 
14.  Re: SSH con contraseña pública/privada (18/06/2005 01:40, #27165)
  Por: Anónimo (http://www.cigalas.net)
Gracias, muy util si andas cambiando los permisos.

 
15.  Re: SSH con contraseña pública/privada (23/10/2006 11:20, #35908)
  Por: maht
Con el comando
ssh-copy-id [-i [identity_file]] [user@]machine

puedes copiar directamente la clave publica en el authorized_keys de la maquina remota
Saludos

 
16.  Re: SSH indentificacion de conexion (21/03/2007 15:56, #39187)
  Por: darth
Alguien tiene idea como puedo pasar una variable de ambiente en una conexion ssh, es decir desde el cliente al servidor,de esa manera podria identificar el puesto de donde me conecto. La necesidad surge de que uso dhcp y no tengo ip fija. Muchas Gracias

 
GRACIAS
Distribuciones Universal
Por el servidor
Dpto. de Matematicas e Informatica
Calificacion
***0
Vots: 46
Danos tu opinion:
**** Excelente
***0 Muy Bueno
**00 Bueno
*000 Regular
0000 Malo
Relacionados
. Port forwarding con SSH
. Buscando e Identificando servidores SSH.
. Telnet y SSH desde el navegador
. ¿Es SSH lo suficientemente seguro?
SECCIONES
Noticia
Breve
Truco
Enlace
Participa
Proyecto
Articulo
Webbulma
Manoletada :-)
Seguridad
Modificado: 12/11/2009 22:02:09 | Tiempo Total: 0.052 segs | Kernel: Linux - i686 - 2.6.26-1-686 | Last boot: 27/12/2009 22:08 CET
Powered by Apache    MySQL    PHP    Gimp