h1

Acceder por SSH con claves públicas sin introducir la contraseña cada vez

15/11/2008

Actualización de seguridad (octubre de 2026): el artículo original utiliza claves DSA, que deben considerarse obsoletas para nuevas configuraciones. No reutilices los comandos de generación DSA del ejemplo histórico.

Procedimiento actual recomendado

ssh-keygen -t ed25519 -C "acceso-ssh"
ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@servidor
ssh usuario@servidor

Protege la clave privada con una frase de paso, usa un agente SSH cuando corresponda y revisa los permisos de ~/.ssh (700) y de la clave privada (600). El archivo authorized_keys se encuentra en el servidor de destino. No desactives la autenticación por contraseña hasta confirmar que el acceso con clave funciona y disponer de un método de recuperación.

Relacionado: automatizar copias de seguridad con SSH.


Hay veces que tenemos que entrar sucesivamente a una máquina por ssh, y se pierde mucho tiempo en el login. Para ello hay una utilidad de SSH que permite el logueo automático sin que ello signifique decremento de seguridad. Para ello se genera una clave pública y se exporta a la otra máquina, asumiendo el demonio de ssh a partir de entonces el acceso desde esa máquina, con ese usuario y con esa clave, como permitido:

carlos@host1:~$ ssh-keygen -t dsa
carlos@host1:~$ ssh-copy-id -i .ssh/id_dsa.pub pepito@host2

De esta manera el usuario carlos puede entrar en host2 como usuario «pepito» sin tener que teclear siempre la contraseña. Es una solución util para interacciones automática entre sistemas sin tener que almacenar la contraseña del usuario en texto plano, cron o demás.

A parte, es conveniente en sistemas compartidos modificar los permisos de acceso a los ficheros de claves generados para evitar malos usos:
carlos@WhenIGrewUp:~$ chmod 700 .ssh
carlos@WhenIGrewUp:~$ chmod 600 .ssh/authorized_keys
carlos@WhenIGrewUp:~$ chmod 600 .ssh/id_dsa
carlos@WhenIGrewUp:~$ chmod 744 .ssh/id_dsa.pub

En determinadas ocasiones no funciona esta solución. Para ello es conveniente unificar la versión de servidor ssh existente en los nodos. Se puede averiguar facilmente con la utilidad scanssh:

carlos@WhenIGrewUp:~$ sudo scanssh 172.26.9
172.26.0.9:22 SSH-2.0-OpenSSH_4.6p1 Debian-5ubuntu0.6
Effective host scan rate: 3.91 hosts/s

carlos@WhenIGrewUp:~$ sudo scanssh 172.26.5
172.26.0.5:22 SSH-2.0-OpenSSH_5.1p1 Debian-3ubuntu1
Effective host scan rate: 1.52 hosts/s

carlos@shirley:~$ sudo scanssh 172.26.0.4
172.26.0.4:22 SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1.2
Effective host scan rate: 3.33 hosts/s

Otros artículos relacionados: Automatizar respaldos usando SSH

4 comentarios

  1. Avatar de Desconocido

    […] Linux y software libre Experiencias y desarrollo de proyectos con software libre « Acceder por SSH sin contraseña Script sencillo para backups Noviembre 22, 2008 Generalmente en entornos de producción […]


  2. Avatar de Desconocido

    […] y desarrollo de proyectos con software libre « Acceder por SSH con claves públicas sin introducir la contraseña cada vez Configurar Eventum en Español […]


  3. Avatar de Desconocido

    […] Otros artículos relacionados: Acceso remoto seguro con SSH […]


  4. Avatar de Desconocido

    […] Otros artículos relacionados: Autenticación SSH mediante claves públicas […]



Deja una respuesta

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.