Cómo usar SSH-Copy-ID en Ubuntu

Cómo usar SSH-Copy-ID en Ubuntu
Una de las herramientas útiles de SSH es SSH-Copy-ID que se utiliza para instalar la tecla SSH en el servidor remoto para iniciar sesión en el servidor sin proporcionar la contraseña para el inicio de sesión. Por lo tanto, el inicio de sesión único y el inicio de sesión automatizado sin contraseña utilizando SSH se pueden implementar fácilmente utilizando esta herramienta. Copia las claves públicas para el host remoto ~/.SSH/Autorizado_Keys File creando el archivo y el directorio si se requiere, pero no modifica el permiso de ningún archivo o carpeta existente. Cómo se puede utilizar el comando ssh-copy-id para la conexión ssh se ha explicado en este tutorial.

Prerrequisitos:

Antes de comenzar los pasos de este tutorial, se requerirán los siguientes pasos para completar.

Habilite el servicio SSH en Ubuntu si no está habilitado antes.
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 rsa

Ejecute el siguiente comando para abrir el sshd_config Archivo con el editor Nano para agregar algunas configuraciones necesarias.

$ sudo nano/etc/ssh/sshd_config

Agregue las siguientes líneas en el archivo para habilitar el inicio de sesión raíz y la autenticación basada en contraseña.

Contraseña Autenticación Sí
Permitrootlogin si

Ejecute el siguiente comando para reiniciar el servicio SSH.

$ sudo servicio ssh reiniciar

Sintaxis:

La sintaxis del comando ssh-copy-id se da a continuación. Admite múltiples opciones, que se explican más adelante.

ssh-copy-id [-lv] [-i keyFile] [-o opción] [-P Port] [User@] Nombre de host

Diferentes opciones del comando ssh-copy-id:

Los propósitos de utilizar diferentes opciones de comandos SSH-Copy-ID se han descrito en esta parte del tutorial.

Opción Objetivo
-I Keyfile Se utiliza para copiar la clave pública que se almacena en un archivo. Se puede usar varias veces.
-l Se utiliza para copiar las teclas actualmente en poder del agente SSH. Se usa como predeterminado si no se especifica la opción -i.
-o opción ssh Se usa para pasar la opción directamente a SSH. Se puede usar varias veces.
-puerto P Se utiliza para conectarse con el puerto especificado en el host remoto en lugar del puerto predeterminado que es 22.
-V Se usa para pasar el valor de -v a ssh.

Copiar clave al servidor:

Debe autorizar la clave pública en la máquina del servidor para establecer la conexión SSH sin usar ninguna contraseña. Después de crear la clave pública, el comando SSH-Copy-ID puede agregar la clave como una clave autorizada en la máquina del servidor.

Ejecute el siguiente comando desde la máquina del servidor para agregar cualquier clave pública recién creada como una clave autorizada del servidor.

$ ssh-copy-id fahmida@fahmida-virtualbox

La siguiente salida aparecerá si la clave pública ya existe en el servidor remoto; de lo contrario, se agregará la clave.

Se menciona anteriormente que la opción -i se usa con el comando ssh-copy-id para agregar la clave pública desde el archivo. Si almacenó la clave pública recién creada en el archivo predeterminado, el nombre del archivo sería ID_RSA.pub. Pero ha establecido cualquier nombre de archivo al crear los pares de claves, luego use ese nombre de archivo con la opción -i. He almacenado la clave pública en el archivo predeterminado.

Ejecute el siguiente comando desde la máquina del servidor para agregar la clave pública a la máquina del servidor. El comando copiará la clave al servidor y la configurará para agregar la tecla al autorizado_keys archivo para acceder al servidor.

$ ssh-copy-id -i ~/.ssh/id_rsa fahmida@fahmida-virtualbox

La siguiente salida aparecerá si la clave pública no se agregó antes en la máquina del servidor.

Verifique la conexión:

Después de agregar la clave al servidor, debe verificar si la máquina del cliente puede conectarse con el servidor. El nombre de usuario de la máquina del servidor es 'fahmida', y la máquina del cliente está 'símin' aquí. Entonces, inicie sesión en la máquina del cliente primero para probar la conexión.

Ejecute el siguiente comando para agregar la identidad del servidor a la máquina del cliente.

$ ssh-add

Ejecute el siguiente comando SSH sin ninguna opción para establecer una conexión con la máquina del servidor. Si la autenticación basada en contraseña está habilitada en la máquina del servidor, el usuario debe proporcionar una contraseña válida para establecer una conexión con el servidor.

$ ssh fahmida@fahmida-virtualbox

La siguiente salida muestra que la identidad del servidor se ha agregado a la máquina del cliente. A continuación, la contraseña del usuario del servidor ha solicitado la conexión porque la autenticación basada en contraseña se ha habilitado en la máquina del servidor aquí. El nombre de usuario se cambia a 'fahmida' del 'yesmin' en el símbolo del sistema que indica que la conexión se ha establecido correctamente después de dar la contraseña válida.

Si desea mencionar el nombre de archivo de la clave pública con la ubicación para establecer la conexión con el servidor, ejecute el siguiente comando SSH con la opción -i. Se requerirá si almacena la clave pública en el nombre de archivo definido por el usuario. He usado el nombre de archivo predeterminado en el momento de la generación de claves que es ID_RSA.

$ ssh -i ~/.ssh/id_rsa fahmida@fahmida-virtualbox

Solicitará la contraseña como antes para establecer la conexión con el servidor. La salida muestra que la conexión se ha establecido correctamente, y el nombre de usuario del símbolo del sistema ha cambiado. Puede cambiar el archivo de configuración del servidor para deshabilitar la autenticación basada en contraseña si no desea proporcionar una contraseña siempre que desee conectarse con el servidor.

Conclusión:

Los usos del comando SSH-Copy-ID para conectarse con el host remoto se han descrito en este tutorial utilizando dos cuentas de usuario del host local para ayudar a los lectores a conocer la función de este comando correctamente.