Saltar al contenido

Cómo configurar SSH sin contraseña en Linux

SSH significa Cápsula segura, en inglés, que en español sería “Security Shield”. Este es un protocolo de red de código abierto que se puede utilizar para iniciar sesión en servidores y ejecutar comandos de forma remota, ¡lo cual es excelente para los usuarios de VPS!

Como configurar SSH sin contrasena en

Hay dos formas de habilitar SSH:

  • Autenticación basada en contraseña
  • Autenticación basada en clave pública

La autenticación basada en clave pública también se conoce como SSH sin contraseña.

¿Por qué utilizar SSH sin contraseña?

A veces podemos encontrar contraseñas difíciles de recordar e incómodas, especialmente si estamos en un entorno donde necesitamos ingresar una contraseña con frecuencia.

Algunas ventajas de utilizar SSH sin contraseña son:

  • Ofrece inicio de sesión fácil y no interactivo. Los usuarios no necesitan ingresar la contraseña para cada nueva sesión.
  • Es una alternativa más segura en comparación con las contraseñas, ya que funciona con criptografía de clave pública-privada.
  • Es más confiable.
  • Proporciona una mejor gestión de autenticación y autorización.
  • Es una buena solución para pequeñas y grandes infraestructuras.
  • Esto es fácil de construir y mantener.

Para comenzar a usar SSH sin contraseña en Linux, necesita generar una clave pública. En este tutorial nos centraremos en explicar cómo hacer esto en SSH versión 2, que es el protocolo más reciente y seguro.

¡Inicie sesión en su servidor VPS usando SSH y estará listo para comenzar!

Leer  Cómo ver los paquetes instalados en Ubuntu 20.04 en 2024

Primero, puede verificar si la clave SSH de la máquina cliente ya existe. Esto evitará sobrescribir la configuración actual. Puede utilizar el siguiente comando para averiguarlo:

ls -al ~/.ssh/id_*.pub

Si encuentra una clave existente, puede: omitir los pasos de generación de clave SSH, reemplazar la configuración actual o crear una copia de seguridad de la clave existente. Si la clave no existe, verá el siguiente resultado:

ls: cannot access /users/appsadm/.ssh/id_*.pub: No such file or directory

Ahora puedes proceder a generar la clave SSH.

SSH sin contraseña en Ubuntu y CentOS

Para generar una clave pública y privada en Ubuntu o CentOS, use el comando:

ssh-keygen -t rsa

La opción -t significa tipo, mientras que RSA es el protocolo utilizado para la generación de claves. RSA es el tipo predeterminado, por lo que también puedes usar la versión más simple del comando: ssh-keygen.

La clave predeterminada es de 2048 bits. Sin embargo, si desea mayor seguridad, puede cambiar el valor a 4096 bits. En este caso el comando será:

ssh-keygen -t rsa -b 4096

Este es un proceso interactivo de generación de claves y se le harán algunas preguntas como:

  • Ingresa el archivo en el que guardarás la clave (/home/.ssh.id_rsa)
  • Ingrese la contraseña (vacía si desea dejarla sin contraseña)

Puede presionar Enter para ambas preguntas y el sistema asumirá los valores predeterminados. La contraseña es una secuencia de caracteres que se utiliza para cifrar la clave privada; sin embargo, no es obligatorio y puede dejarse en blanco. La clave privada se guardará en la ubicación predeterminada: .ssh/id_rsa.

La clave pública se guardará en el archivo. .ssh/id_rsa.pub. Esto habrá completado el paso de generación de claves. Puede comprobar archivos utilizando cualquier editor.

Leer  Cómo Cambiar El Hostname En Ubuntu 18.04

Copie la clave pública para habilitar SSH sin contraseña

Copiar la clave pública a una máquina de destino se puede realizar de tres maneras:

  • Usando el comando ssh-copy-id
  • Usando SSH
  • A mano

La primera opción es la más preferida y la más rápida. El comando ssh-copia-id Está incluido por defecto en la mayoría de las versiones de Linux. Si tiene problemas al usar ssh-copy-id o no tiene acceso a este comando, puede probar las siguientes opciones.

Método 1: utilice el comando ssh-copy-id

La sintaxis básica para usar este comando se detalla a continuación:

ssh-copy-id remote_username@remote_IP_Address

Al escribirlo recibirás un mensaje con la contraseña de la máquina remota. Una vez que la autenticación sea exitosa, la clave pública SSH generada se agregará al archivo autorizado_keys en la máquina remota. Después de agregar la clave, la conexión se cerrará automáticamente.

Método 2: copiar la clave privada usando SSH

El siguiente método utiliza SSH para copiar la clave privada. Puedes utilizar esta alternativa cuando tengas acceso al servidor con una contraseña SSH. El siguiente comando se encargará del proceso. Sólo necesita ingresar el nombre de usuario y la dirección IP de la máquina remota.

cat ~/.ssh/id_rsa.pub | ssh remote_username@remote_ip_address "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Esto agregará la clave al archivo de claves_autorizadas de la máquina remota.

Método 3: copiar manualmente la clave pública

El tercer método es un poco más difícil porque es completamente manual. Sin embargo, si los otros métodos no funcionan, ¡puedes usar este! Tendrás que agregar manualmente el contenido del archivo. id_rsa.pub al archivo ~/.ssh/claves_autorizadas desde el servidor remoto.

Leer  Cómo crear un contenedor Docker: explicación detallada

En el método fuente puede mostrar el contenido del archivo. id_rsa.pub usando el editor vi o el comando cat:

cat ~/.ssh/id_rsa.pub

Esto mostrará el resultado que contiene la clave, que comienza con ssh-rsa. ¡Copiar! Luego, en el servidor remoto, inicie sesión y cree el archivo .ssh si no existe.

mkdir -p ~/.ssh

De manera similar, puede crear el archivo autorizado_keys. Agregue la clave pública SSH copiada al archivo vacío como se muestra a continuación:

echo SSH_public_key >> ~/.ssh/authorized_keys

SSH_clave_pública sería la clave pública que copió de la máquina fuente. Empezar con ssh-rsa.

Después de copiar la clave, puede proporcionar los permisos necesarios al directorio .ssh del servidor remoto utilizando el comando chmod.

chmod -766 ~/.ssh

Pruebe SSH sin contraseña

Si llegó hasta aquí y hizo todo, debería haber habilitado SSH sin contraseña y realizado la configuración básica. Para probar la función, puede intentar acceder al servidor remoto a través del servidor de origen. La sintaxis del comando se vería así:

ssh remote_username@remote_IP_Address

Si todo funcionó correctamente, deberías poder iniciar sesión automáticamente sin tener que ingresar tu contraseña.

Cómo deshabilitar SSH sin contraseña

Si decide que SSH sin contraseña no es para usted, puede desactivarlo siguiendo los pasos a continuación. Para realizar este cambio, abra el archivo de configuración SSH: /etc/ssh/ssh_config. Nuevamente, cualquier editor funcionará, en nuestro caso usamos nano. Aquí encontrarás una entrada con el comando Autenticación de contraseña. Modifique las líneas como se muestra:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Después de cambiar esto, guarde el archivo y reinicie SSH. Aquí te enseñamos cómo hacerlo en ubuntu 18.04:

sudo systemctl restart ssh

y el comando para CentOS 7:

sudo systemctl restart sshd
1714819785 387 Las 32 mejores ideas de negocios pequenos para empezar en

En conclusión

Dicho esto, nuestro tutorial sobre SSH sin contraseña estaría completo. Cubrimos la configuración de SSH sin contraseña, cómo funciona y cómo desactivarlo. ¡Esperamos que este tutorial te haya resultado útil! Recuerde, mantenga su equipo seguro, ¡más vale prevenir que curar!

Compartir

Deja una respuesta