Al hilo de Cómo Evitar un Proxy HTTP con SSH y PuTTY, vamos a ver cómo podemos acceder por ssh a otro ordenador sin necesidad de meter contraseña, todo ello gracias a la criptografía de clave pública.
Vamos a suponer que queremos acceder de CASA a ASTURLINUX. Lo primero que tenemos que hacer en CASA es generar un par de claves privada-pública con ssh-keygen. Es importante no meter ninguna contraseña cuando la pida, ya que sino al conectar con el ordenador remoto no nos pediría la contraseña del usuario remoto, pero si la contraseña del par de claves:
xtrasgu@xtrastu:~$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/xtrasgu/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/xtrasgu/.ssh/id_rsa. Your public key has been saved in /home/xtrasgu/.ssh/id_rsa.pub. The key fingerprint is: f9:28:06:c9:5f:fc:8f:ef:fa:b1:ed:f9:5c:17:ce:32 xtrasgu@xtrastu The key's randomart image is: +--[ RSA 2048]----+ | | | | | | | . . . . | | + S . | | o . + o .| | + . o .E oo| | . . o +ooo| | o=*.+.o| +-----------------+ xtrasgu@xtrastu:~$
Hemos generado la clave pública de nuestro usuario local en CASA (/home/xtrasgu/.ssh/id_rsa.pub):
xtrasgu@xtrastu:~$ cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA76Vd8lkdGw6noEEZ9BgD+jIG7QeZ/6If3BICJM7kWx5u 6ulefKLXYrT3VCcRe7Yjne6VKrC4fAbJ52IFF+3b4lZvkoFObJfeVU9U+KRfXGVZhzv/EHBNfx3nQgmi MZtUdkP/TudRMpHiNzNxe/ZquOmgFowZx+nvxyBz29J8f38j1XfqncZENBxTy3V/DGmli65ln2Xkisoz oPvzYaBe4j76YscMEq5bZnm0hU/4BCu1H/w5CKSOuy7ZPBAVzJ3UKDFQg6QZOGW+JhWvdZ9I2bCV5KRl 6udcdw2lG1t8+x2q70h4CGxs//N5/k5inFnyboL3YgR3AA9hI6+An2JY0w== xtrasgu@xtrastu xtrasgu@xtrastu:~$
Lo último que nos queda por hacer es copiar la clave pública del usuario local en CASA al fichero authorized_keys del usuario remoto en ASTURLINUX (/home/xtrasgu/.ssh/authorized_keys)
xtrasgu@pintaiux:~$ cat .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA76Vd8lkdGw6noEEZ9BgD+jIG7QeZ/6If3BICJM7kWx5u 6ulefKLXYrT3VCcRe7Yjne6VKrC4fAbJ52IFF+3b4lZvkoFObJfeVU9U+KRfXGVZhzv/EHBNfx3nQgmi MZtUdkP/TudRMpHiNzNxe/ZquOmgFowZx+nvxyBz29J8f38j1XfqncZENBxTy3V/DGmli65ln2Xkisoz oPvzYaBe4j76YscMEq5bZnm0hU/4BCu1H/w5CKSOuy7ZPBAVzJ3UKDFQg6QZOGW+JhWvdZ9I2bCV5KRl 6udcdw2lG1t8+x2q70h4CGxs//N5/k5inFnyboL3YgR3AA9hI6+An2JY0w== xtrasgu@xtrastu xtrasgu@pintaiux:~$
Listo, una vez completados todos los pasos, podemos acceder de CASA a ASTURLINUX sin tener que meter ninguna contraseña:
xtrasgu@xtrastu:~$ ssh xtrasgu@asturlinux.org Linux pintaiux 2.6.18-6-686 #1 SMP Thu Nov 5 16:28:13 UTC 2009 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Thu Dec 31 10:34:16 2009 from 88.red-83-61-92.dynamicip.rima-tde.net xtrasgu@pintaiux:~$
Por último, si en CASA usamos Windows, se puede generar la clave privada con puttygen.
Hola:
Enhorabuena por el artículo, está bastante entretenido. Publiqué un artículo en mi Blog para aprender a conectar por SSH sin contraseña y usando las llaves SSH. Dejo por aquí la URL por si es útil para alguno de tus visitantes.
https://www.raulprietofernandez.net/blog/gnu-linux/como-conectar-por-ssh-sin-password-en-gnu-linux
Un saludo! 😀