|
How-to
Conexión SSH automática mediante claves RSA
El
presente how-to describe la forma de realizar una configuración
para conectarse mediante SSH de manera automática (sin digitar
la clave) hacia un servidor remoto. Esta forma de conexión nos
servirá para autenticar hacia un repositorio Subversion, o
también para acceder a una sesión SSH de manera directa
y sin digitar el password.
Aquí
presento una forma para conectarse, desde Windows (usando Putty).
Requisitos:
Un Servidor Linux con servicio OpenSSH activo y con
reglas de firewall (iptables) que permitan el acceso por el puerto
22.
Una estación Windows XP con Putty, Pageant,
Puttygen.
Desde
Windows hacia un OpenSSH server sobre Linux:
Paso
1: conectarse mediante putty hacia el servidor OpenSSH mediante putty
de manera normal:

Paso
2: autentificarse con su nombre de usuario
login
as: abriceno (enter)
Paso
3: Seguidamente poner la clave
login
as: abriceno
abriceno@192.168.1.11's
password:
Last
login: Wed Feb 11 12:21:51 2009 from 192.168.1.245
[abriceno@netserver
~]$
Paso 4: Acceder al directorio oculto
.ssh y ejecutar ssh-keygen de la siguiente forma:
[abriceno@netserver
~]$ cd .ssh
[abriceno@netserver
.ssh]$ ssh-keygen -t rsa -b 1024
Esto solicitará que indiques el
nombre del archivo para la clave privada , que por defecto será
id_rsa, por lo tanto no pongas ningún
nombre y pulsa enter.
[abriceno@netserver
.ssh]$ ssh-keygen -t rsa -b 1024
Generating
public/private rsa key pair.
Enter
file in which to save the key (/home/abriceno/.ssh/id_rsa):
Seguidamente el sistema solicitará
una frase de conexión, donde, cada vez que te conectes el
sistema te lo pedirá. Pero como nosotros queremos acceder sin
poner claves ni frases, no ponemos nada y lo dejamos en blanco. Te
volverá a pedir que vuelvas a escribir la frase nuevamente,
otra vez lo dejas en blanco pulsando enter.
Enter
passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/abriceno/.ssh/id_rsa.
Your public key has been saved in /home/abriceno/.ssh/id_rsa.pub.
The key fingerprint is:
5b:29:89:db:4b:c7:19:70:a7:41:c9:ae:5d:cb:5b:31
abriceno@netserver.peruviansoft.net
abriceno@netserver.ssh]$
Si listamos los archivos del directorio
.ssh (donde estamos)
[abriceno@netserver
.ssh]$ ls -l
total 24
-rw-------
1 abriceno abriceno 684 Feb 11 12:23 authorized_keys
-rw-------
1 abriceno abriceno 887 Feb 11 13:06 id_rsa
-rw-r--r--
1 abriceno abriceno 240 Feb 11 13:06 id_rsa.pub
[abriceno@netserver
.ssh]$
Podemos ver que se han generado dos
archivos: id_rsa (clave privada) , id_rsa.pub (clave pública).
Ahora es necesario copiar el contenido de id:_rsa.pub en el archivo
authorized_keys, authorized_keys debe tener permisos de escritura y
lectura solo por parte del usuario (chmod 600 authorized_keys)
[abriceno@netserver
.ssh]$ cat id_rsa.pub >> authorized_keys
[abriceno@netserver
.ssh]$ chmod 600 authorized_keys
Luego copiamos la clave privada (
id_rsa ) hacia el cliente, esta clave privada necesita ser convertida
a un formato singular que Putty reconoce, para ello utilizamos la
aplicación Puttygen, el cual tiene una opción llamada
“Import Key” en el menu Convertions,
este abrirá un cuadro de dialogo solicitando la clave privada
a importar (en este caso el archivo id_rsa
copiado desde el servidor OpenSSH hacia nuestra estación
cliente).

Ahora ya tenemos la clave privada
convertida lista para ser usada por putty. Pero antes de iniciar la
conexión debemos reiniciar el servicio de OpenSSH en el
Servidor remoto, para ellos debemos solicitarlo al Administrador del
servidor remoto o también si tenemos los provilegios de root.
[abriceno@netserver
.ssh]$ su root --login
Password:
[root@netserver
~]# service sshd restart
Stopping
sshd: [ OK ]
Starting
sshd: [ OK ] [root@netserver
~]#
Salimos de la sesión inicial con
putty
[root@netserver
~]# exit
logout
[abriceno @netserver
.ssh]$ exit
 Luego
volvemos a conectarnos con Putty, pero, esta vez vamos a realizar
otros pasos adicionales para conectarnos directamente. En Host Name
indicamos la IP del servidor remoto.
Luego vamos a la opción
“Connection
-> Data”, allí encontramos un
Sector que indica Login details,
y digitamos el Auto-login username, que viene a ser el nombre de
usuario.

Ahora
es necesario configurar la conexión directa sin claves, para
ello es necesario indicar la clave privada id_rsa.ppk, obtenida
mediante Puttygen

|