RECETA: SSH Autenticar un usuario mediante clave publica. La receta siguiente esta resumida del documento: "SSH Secure Shell for Servers administrator's Guide". November 2001 Capitulo 4 - Autenticacion. disponible en el sitio web de SSH - www.ssh.com - y es valido para utilizar en la version SSH 3 - version 2 del protocolo -. NOTA IMPORTANTE: para usar con OpenSSH ver al final del archivo. ------------------------------------------------------------------------ Autenticacion por clave publica. ws1: es la maquina que tiene el cliente ssh ns2: es la maquina corriendo el server ssh, a la que me conecto. en ws1 genero las claves: ws1:/home/dbellomo/.ssh2> ssh-keygen2 Generating 1024-bit dsa key pair 3 o.oOo.oOOo.o Key generated. 1024-bit dsa, dbellomo@ws1, Wed Feb 13 2002 22:02:24 -0300 Passphrase : Again : Key is stored with NULL passphrase. (You can ignore the following warning if you are generating hostkeys.) This is not recommended. Don't do this unless you know what you're doing. If file system protections fail (someone can access the keyfile), or if the super-user is malicious, your key can be used without the deciphering effort. Private key saved to /home/dbellomo/.ssh2/id_dsa_1024_a Public key saved to /home/dbellomo/.ssh2/id_dsa_1024_a.pub No coloque nada [enter] en Passphrase, por eso "protesta". para comodidad, le cambio los nombres a ws1 y ws1.pub ws1:/home/dbellomo/.ssh2> l ws1* -rw------- 1 dbellomo wheel 870 Feb 13 22:02 ws1 -rw-r----- 1 dbellomo wheel 739 Feb 13 22:02 ws1.pub Creo el archivo "identification" ws1:/home/dbellomo/.ssh2> more identification idKey ws1 ws1:/home/dbellomo/.ssh2> copio la clave publica en ns2: ws1:/home/dbellomo/.ssh2> scp ws1.pub ns2:.ssh2/ en ns2 creo el achivo "authorization" ns2:/export/home/dbellomo/.ssh2> more authorization Key ws1.pub ns2:/export/home/dbellomo/.ssh2> Listo, despues de esto ya podes ingresar al equipo remoto, autenticado por las claves privada / publica: ws1:/home/dbellomo> ssh ns2 Authentication successful. Last login: Wed Feb 13 2002 22:13:47 -0300 from ws1.retina.ar Sun Microsystems Inc. SunOS 5.5.1 Generic May 1996 No mail. 10:32pm up 40 day(s), 10:36, 2 users, load average: 0.58, 0.40, 0.36 ns2:/export/home/dbellomo> --------------------------------------------------------------------------- OpenSSH: usa un mecanismo similar, con la diferencia que utiliza distintos nombres de archivos y, lo mas importante, guarda las claves de manera distinta al ssh de SSH.COM. Estos pasos sirven para usar un cliente ssh.com contra un server OpenSSH. Una vez generada la clave privada y publica, como siempre, se copia la clave publica al servidor. En el servidor (OpenSSH) se debe hacer: $ ssh-keygen -X -f ws1.pub > ws1-open.pub Este comando convierte las claves del ssh.com a OpenSSH. No encontre la documentacion pero esta mencionado en algunas webs, aunque dicen que hay que usar -X para RSA y -x para DSA. A mi solo me funciono -X, sin tener en cuenta el metodo de encriptado. Finalmente, se debe agregar esa clave al final del archivo authorized_keys (en ~/.ssh): $ cat ws1-open.pub >> authorized_keys Tener en cuenta que las claves se acumulan una a continuacion de la otra, no hay comentarios como en ssh.com. OJO: no cometer el error de olvidar un ">" porque se borraria el archivo...