Skip to main content

Configurar SSH/SCP sin contraseña, usando llave pública

· 2 min read
Héctor Mansilla Arias

Cree la clave SSH usando una herramienta externa, como ssh-keygen o puttygen. Siga las pautas que se indican a continuación al crear su clave.

  1. Se recomienda una codificación de 4096 bits, con un mínimo de 2048 bits
  2. Se recomienda NO usar frases de contraseña ¿cuál sería el sentido si queremos automatizar?
  3. En este ejemplo usaremos el usuario root y el nombre de la llave será my_id
[root@laptop .ssh]# ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/my_id
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/my_id.
Your public key has been saved in /root/.ssh/my_id.pub.
The key fingerprint is:
1c:ee:bb:73:b2:42:34:02:e2:85:bf:c9:97:01:d1:f7 root@laptop
The key's randomart image is:
+--[ RSA 2048]----+
| ..o |
|...o . . |
|..o.. . o |
| . ...oo E |
| . ooo.S |
| + o.. |
| .. . |
| . o.. |
| .+* |
+-----------------+
You have new mail in /var/spool/mail/root

Ingresamos al directorio donde se almacenan las llaves, por ejemplo:

[root@laptop .ssh]#cd ~/.ssh/ 
[root@laptop .ssh]# ls
my_id my_id.pub
[root@laptop .ssh]#

Ahora, copiamos la llave pública al equipo remoto. Si el equipo remoto no dispone del directorio .ssh, lo creamos:

scp ~/.ssh/my_id.pub user@servidor_remoto:/home/ibmcloud/.ssh/upload.pub
user@servidor_remoto's password:
upload.pub 100% 756 0.7KB/s 00:00
[root@laptop .ssh]#

Luego, ingresamos al servidor remoto por SSH para terminar la configuración:

[root@laptop .ssh]# ssh user@servidor_remoto
user@servidor_remoto's password:
[user@servidor_remoto]$ cat ~/.ssh/upload.pub >> ~/.ssh/authorized_keys

verificamos que la llave esté pressnte en ~/.ssh/authorized_keys y luego, borramos el archivo subido previamente (upload.pub)

[user@servidor_remoto]$ cat ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== root@laptop
[user@servidor_remoto]$ rm ~/.ssh/upload.pub

Ahora, ajustamos los permisos de la carpeta y los archivos en ~/.ssh

[user@servidor_remoto]$ chmod 700 ~/.ssh/
[user@servidor_remoto]$ chmod 600 ~/.ssh/*

Salimos del servidor remoto:

[user@servidor_remoto]$ exit

Finalmente, probamos la conexión «sin contraseña», utilizando la llave publica:

[root@laptop .ssh]# ssh user@servidor_remoto
Last login: Mon Feb 22 11:37:55 2022 from 200.23.12.98
[user@servidor_remoto]$

Ahora, deberíamos poder usar SSH y SCP sin problemas ni contraseña para el usuario configurado.