Cómo configurar una clave SSH en Linux

SSH es una gran tecnología; Puede usarlo para ocultar el tráfico VPN, asegurar su conexión a sitios web y más. El único problema es que cada vez que intenta iniciar sesión en una máquina remota, debe ingresar su contraseña y eso puede ser tedioso. Si es un desarrollador que busca conectarse a muchas máquinas a través de SSH a la vez con un script Bash, o simplemente alguien que usa Secure Shell y está harto de ingresar contraseñas, existe una solución: SSH sin contraseña. Este proceso implica generar una clave SSH segura en la máquina host y compartirla como una forma de acceder a la PC. Esto permitirá que cualquier persona con la clave inicie sesión, incluso si no conoce la contraseña. Aquí le mostramos cómo hacerlo funcionar.

¿Qué son las claves SSH?

Una clave SSH es un archivo de identificación único que se utiliza con Secure Shell. El propósito de estas claves es proporcionar una identidad única al usuario y marcarlos como «confiables» al iniciar sesión. Estas claves en sí mismas son más que archivos que prueban la identidad de alguien. De hecho, SSH permite a los usuarios iniciar sesión con una clave en lugar de una contraseña. Es decir, en lugar de verse obligado a ingresar una contraseña cada vez que inicia sesión a través de SSH, usa la clave SSH.

  6 reproductores de música impresionantes para Linux

La clave SSH se coloca en algún lugar seguro en su instalación de Linux, y desde allí, puede iniciar sesión en la máquina remota tanto como desee sin una contraseña.

Generación de claves SSH seguras

La generación de una clave SSH segura primero requiere que SSH esté en funcionamiento. Entienda que esto no significa necesariamente que necesite tener un servidor SSH. Solo que las herramientas y tecnologías SSH básicas se están ejecutando en su PC con Linux. ¿No estás seguro de cómo configurar SSH? Siga nuestra guía aquí.

Genere siempre las claves SSH en el sistema que aloja el servidor SSH. No intente generarlos en el servidor que no aloja una sesión SSH y cópielos en la máquina host SSH. No funcionará.

Para iniciar el proceso de generación de claves, abra una terminal. Dentro de la ventana de la terminal, ejecuta:

ssh-keygen -t rsa

La ejecución de ssh-keygen imprimirá «Generando par de claves rsa pública / privada». Esto significa que el sistema le genera tanto una clave pública como una clave privada para usar. Las claves públicas son las que cualquiera puede usar, y debería estar bien entregarlas. Una clave privada, por otro lado, es algo que nunca debes compartir con nadie. De ahí el nombre de “privado”.

Las claves se guardarán en /home/username/.ssh/id_rsa.

Nota: NO BORRE la carpeta ~ / .ssh, ya que contiene sus claves. Si manipula esta carpeta de alguna manera y luego intenta iniciar sesión en esta máquina de forma remota, el indicador SSH fallará. También imprimirá una advertencia y lo bloqueará.

  Cómo organizar su árbol genealógico en Linux con Gramps

Llaves SSH en máquina remota

Ahora que las claves SSH (tanto públicas como privadas) están creadas y listas para usar, deberá copiarlas en el sistema desde el que desea iniciar sesión. Es importante que repita este proceso en todas las máquinas en las que planea iniciar sesión a través de SSH. De lo contrario, aquellos que no tengan la clave deberán iniciar sesión utilizando el método de contraseña.

Para agregar las claves al sistema remoto, siga este ejemplo. Asegúrese de hacer esto desde la máquina host a través de SSH.

ssh username@remote-host-name mkdir -p .ssh

La ejecución de este comando ssh creará una carpeta ~ / .ssh oculta en el directorio de inicio de la máquina remota (con el usuario que se utilizó para iniciar sesión). Esta carpeta es importante, ya que aquí es donde copiaremos los archivos de clave SSH recién generados.

Para copiar los archivos de claves SSH, ejecute otro comando desde la máquina host SSH a la máquina remota que necesita las claves:

cat .ssh/id_rsa.pub | ssh username@remote-host-name 'cat >> .ssh/authorized_keys'

La copia tardará unos segundos, según la velocidad de la red. Cuando termine, la PC remota tendrá las claves generadas y podrá iniciar sesión en la PC host SSH sin contraseña.

Copia de seguridad de claves SSH

Las claves SSH son cosas útiles y cada una es única. Es por esto que respaldarlos es el mejor curso de acción. El problema es que si lo guarda en otro lugar, alguien puede encontrar su clave SSH, conservarla y usarla para sí mismo. Entonces, la pregunta es, ¿cuál es una buena manera de realizar una copia de seguridad segura de una clave SSH? Cifrado.

  Cómo instalar el tema Snow GTK en Linux

La forma más rápida, más eficiente (y más fácil) de cifrar es usar GnuPG. La herramienta en sí está integrada en la mayoría de las herramientas de cifrado que ya están en Linux, y es la opción a la que recurrir cuando se abre el cifrado de archivos. Para instalar GnuPG, abra una terminal y busque “gpg” en su administrador de paquetes. El programa debería ser fácil de encontrar, incluso en distribuciones de Linux muy poco conocidas.

Una vez que GPG esté en funcionamiento, inicie el proceso de cifrado comprimiendo su directorio ~ / .ssh en un archivo tar. Hacer esto hará que no haya necesidad de cifrar individualmente todos y cada uno de los archivos en la carpeta ~ / .ssh.

tar -czvf ssh-stuff.tar.gz /home/username/.ssh

Cuando finalice la compresión, inicie el proceso de cifrado.

Nota: antes de encriptar, ejecute gpg en la terminal para generar un nuevo llavero.

gpg -c ssh-stuff.tar.gz

Cuando se complete el proceso de cifrado, GnuPG sacará un archivo con la etiqueta «ssh-stuff.tar.gz.gpg». Siéntase libre de borrar la versión original desbloqueada del archivo. Para descifrar su archivo de respaldo, haga lo siguiente:

gpg ssh-stuff.tar.gz.gpg