viernes, abril 30, 2010

Claves públicas SSH

Hoy voy a explicar como autenticarse mediante el uso de claves públicas de SSH, esto nos permitirá conectarnos a nuestro servidor sin tener que teclear nuestra password.

Modificamos el fichero de configuración del servidor:

vi /etc/ssh/sshd_config
Protocol 2
RSAAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Cada usuario puede generar las claves o lo puede hacer el administrador del servidor:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/"usuario"/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again: --> Si se deja en blanco luego será comodisimo
Your identification has been saved in /home/"usuario"/.ssh/id_rsa.
Your public key has been saved in /home/"usuario"/.ssh/id_rsa.pub.
The key fingerprint is:
11:fr:60:f8:a9:42:87:d6:38:c0:a7:22:64:8b:94:cd "usuario"@"host"
The key's randomart image is:
+--[ RSA 2048]----+
| ..o . ... |
| . O o -. |
| .+* o +.+ |
|oo+E. . ... |
|.= .+. S |
|. . |
| |
| |
| |
+-----------------+

/home/"usuario"/.ssh/id_rsa --> Clave privada: Cuidadin
/home/"usuario"/.ssh/id_rsa.pub --> Clave pública

Hacemos llegar nuestra clave pública al servidor SSH:
ssh-copy-id "usuario"@"servidor" --> Pedirá la passphrase y luego la password de "usuario"

Si en el servidor vamos a tener mas usuarios, generamos las claves y cuando nos pregunte:
Enter file in which to save the key (/home/"usuario"/.ssh/id_rsa)
Vamos dandole nombres distintos como id_rsa2,3,4......

Subimos cada una de las claves públicas:
ssh-copy-id "usuario"@"servidor" --> Pedirá la passphrase y luego la password de "usuario"

Aseguramos el servidor:
PasswordAuthentication no
PermitRootLogin no

/etc/init.d/ssh restart

Ya lo tenemos, ahora conectamos con nuestro usuario y por arte de magia accedemos sin necesidad de password ;)

ssh -i .ssh/id_rsa"N" "usuarioN"@"servidor"

No hay comentarios: