Cómo configurar las claves SSH
Si nos conectamos por SSH a diferentes servidores remotos muy frecuentemente es conveniente hacerlo mediante clave publica para no tener que estar recordando las contraseñas de los servidores remotos. Además de ser mucho mas seguro que utilizar contraseñas.
Las claves de SSH se almacenan en ~/.ssh. Debe verificarse que no existen antes de crearse unas nuevas.
SSH trabaja con un par de claves, una privada ~/.ssh/id_ y una publica ~/.ssh/id_.pub. El tipo de cifrado suele ser RSA. La clave pública se puede entregar libremente y se añade a los servidores a los cuales deseas conectarte en el archivo ~/.ssh/authorized_keys.
1. Generar claves SSH en el cliente(user).
Nos pedirá donde guardar las claves y una contraseña para poder utilizar la clave privada.
Utilizamos el directorio por defecto y omitimos la contraseña de la clave privada.
user@client:~$ ssh-keygen -t rsa
Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): Created directory '/home/user/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: 70:d8:4d:a5:50:49:a7:91:34:90:d1:b3:18:a6:ea:48 user@client The key's randomart image is: +--[ RSA 2048]----+ | +OB+o | | o++=* | | oooo+o | | .o. . | | . S | | E . | | . o | | . . | | | +-----------------+ user@client:~$
2. Copiar clave publica en el usuario del servidor(user_s).
user@client$ ssh-copy-id user_s@server
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys user_s@server's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'user_s@server'" and check to make sure that only the key(s) you wanted were added.
3. Acceso al servidor.
Ahora podremos acceder al servidor sin contraseña a través las claves SSH.
$ ssh user_s@server