
Normalmente mediante contraseña nos conectamos a la máquina remota mediante el siguiente comando:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ ssh raspberrypi@192.168.2.101 |
Todo esto se puede solucionar usando una clave privada y otra pública SSH con las que no necesitaremos proporcionar ninguna contraseña ya que será la clave privada la que nos autenticará. No necesitaremos proporcionar ninguna contraseña siempre y cuando no protejamos la clave privada mendiante una contraseña para poder usarla.
El par de claves SSH se generan con, se pueden utilizar otros algoritmos como RSA y DSA aunque ECDSA es el recomendado por OpenSSH por ofrecer la misma seguridad con un menor tamaño en bits para las claves. Sin embargo, en el ejemplo usaré RSA por el siguiente bug de GNOME:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ ssh-keygen -t rsa -b 8192 -c 'raspberrypi' |
Al final del proceso veremos la huella digital de la clave, si en algún otro momento deseasemos ver la huella alfanumérica o visual podríamos hacerlo con:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ ssh-keygen -lv -f raspberrypi.pub |
Una vez que disponemos del par de claves deberemos subir la clave pública a la máquina que posteriormente nos conectaremos identificandonos con la clave privada. Lo hacemos con:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ssh-copy-id -i [clave pública] [usuario]@[dirección ip máquina] | |
$ ssh-copy-id -i raspberrypi.pub raspberrypi@192.168.2.101 |
Esta clave pública quedará como autorizada para la máquina y usuario indicados y será añadida al archivo ~/.ssh/authorized_keys en la máquina destino. Si posteriormente quisieramos desautorizar alguna clave solo deberemos borrar la linea de la clave de ese archivo. Posteriormente deberemos indicar en la máquina origen las identidades que queremos que proporcione el comando SSH cuando nos conectemos a alguna máquina con:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ ssh-add raspberrypi |
Si no hemos protegido la clave privada con ninguna clave la identidad quedará añadida con el comando SSH posterior, si hemos protegido la clave privada deberemos introducir la contraseña para poder añadir la identidad.
Finalmente, nos conectaremos a la máquina con el comando SSH y accederemos a la máquina destino sin tener que proporcionar ninguna clave:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ ssh raspberrypi@192.168.2.101 |
Referencia:
https://wiki.archlinux.org/index.php/Secure_Shell#Client
https://wiki.archlinux.org/index.php/SSH_Keys
Guía instalación Raspberry Pi con Arch Linux ARM (Parte I, instalación base)
Guía instalación Raspberry Pi con Arch Linux ARM (Parte II, programas)