Requisitos previos
El servidor SSH no está instalado en Ubuntu de forma predeterminada. Debe instalar el paquete OpenSSH que funcionará como un servidor SSH antes de comenzar este tutorial. Ejecute el siguiente comando para instalar el servidor OpenSSH si no está instalado en el sistema antes.
$ sudo apt instalación openssh-serverGenerar una llave SSH
Genere los pares de teclas SSH para ejecutar los comandos en el servidor remoto. Ejecute el siguiente comando para crear la clave pública y la clave privada. La clave privada se almacenará en el servidor remoto, y las claves públicas se almacenarán en el cliente de forma segura.
$ ssh -keygen -t rsaDespués de ejecutar el comando anterior, preguntará el nombre del archivo dónde se almacenará la clave. presione el Ingresar clave para mantener el nombre de archivo predeterminado de la clave pública que es ID_RSA.pub. A continuación, solicitará la contraseña para iniciar sesión. De nuevo, presione el Ingresar clave dos veces si desea mantener la contraseña vacía. La siguiente salida similar aparecerá después de generar las teclas.
Crear el archivo autorizado_keys
ID_RSA.El archivo de pub contiene la clave pública de la conexión SSH almacenada en ~/.SSH/ carpeta del host remoto. La máquina del cliente también requerirá que la clave pública se conecte con el host remoto copiado en la siguiente parte del tutorial. Tienes que crear el archivo llamado Authorized_Keys dentro de ~/.Carpeta SSH del host remoto que contendrá la clave pública. Ejecute el siguiente comando para mover el ID_RSA.archivo de pub a ~/.archivo ssh/autorized_keys.
$ MV ~/.ssh/id_rsa.pub ~/.ssh/autorized_keysNo aparecerá ningún error si el archivo se mueve correctamente, como la siguiente imagen.
Modificar el archivo de configuración
Debe establecer algunos parámetros de configuración en la máquina del servidor para hacer la conexión SSH sin ninguna contraseña. Ejecute el siguiente comando para abrir el archivo sshd_config usando el editor nano para establecer los valores de parámetros necesarios.
$ sudo nano/etc/ssh/sshd_configEstablezca el valor de la autenticación de contraseña en no para deshabilitar la opción de contraseña de texto para la conexión SSH.
Contraseña Autenticación no
Guarde y cierre el archivo. Ejecute el siguiente comando para reiniciar el servicio SSH.
$ sudo systemctl reiniciar sshEjecute el siguiente comando para establecer los bits de permiso para el archivo autorizado_keys para evitar el acceso no autorizado de este archivo.
$ chmod 600 ~/.ssh/autorized_keysCopie la clave pública en la máquina del cliente
Ahora, inicie sesión en la máquina del cliente desde donde ejecutará el comando ssh para hacer una conexión SSH con el host remoto. Aquí, se han utilizado dos cuentas de usuario de Ubuntu para verificar la conexión SSH en el servidor local. Una cuenta de usuario se ha utilizado como cliente y otra cuenta de usuario se ha utilizado como servidor en este tutorial.
Ejecute el siguiente comando para crear una carpeta llamada ~/.ssh en la máquina del cliente si no existe.
$ mkdir ~/.sshEjecute el siguiente comando para copiar la clave pública desde el host remoto al ~/.carpeta ssh del cliente.
$ scp fahmida@fahmida-virtualbox:/home/fahmida/.ssh/id_rsa ~/.ssh/Debe proporcionar la contraseña del nombre de usuario del host remoto para copiar la clave pública a la máquina del cliente. Obtendrá la siguiente salida si el archivo se copia correctamente. La máquina del cliente ahora está lista para hacer la conexión con la máquina del servidor utilizando el servicio SSH.
Iniciar sesión en la máquina del servidor usando SSH sin contraseña
Ahora, la clave pública existe en máquinas de cliente y servidor. Cuando la máquina del cliente envía la solicitud de conexión a la máquina del servidor utilizando el comando SSH, el servidor coincidirá con la clave pública del cliente con la clave pública del servidor. Si se encuentran las coincidencias, la conexión se establecerá desde el cliente al servidor. Puede conectarse al servidor o al host remoto utilizando el nombre de host o la dirección IP. El servidor local ha utilizado este tutorial para mostrar el uso de los keeys autorizados para establecer la conexión SSH desde la máquina del cliente a la máquina del servidor. Se ha utilizado una cuenta como una máquina del servidor donde se instala el servidor OpenSSH, y otra cuenta se ha utilizado como máquina de cliente aquí. Ejecute el siguiente comando desde la máquina cliente para establecer una conexión con la máquina del servidor.
$ ssh fahmida@fahmida-virtualboxLa siguiente salida aparecerá después de ejecutar el comando anterior. La salida muestra que el nombre de usuario de la máquina del cliente es 'yesmin.'El nombre de usuario de la máquina del servidor es' Fahmida.'La conexión SSH se ha establecido correctamente porque el nombre de usuario ha cambiado a' fahmida 'del' Yesmin.'Ahora, se puede acceder fácilmente al contenido de la máquina del servidor. Si el usuario ejecuta cualquier comando ahora, la salida se generará en función de la máquina del servidor.
Conclusión
El uso del autorizado_keys para establecer la conexión SSH se ha explicado en este tutorial utilizando el LocalHost. Puede seguir el mismo proceso para hacer la conexión SSH para el host remoto. También puede usar el comando SSH-Copy-ID para hacer una conexión SSH con el servidor que se muestra en otro tutorial.