LinuxParty
Puedes acceder a un servidor Linux remoto sin necesidad de introducir la contraseña, siguiendo estos 3 sencillos pasos utilizando ssky-keygen y ssh-copy-id, como se explica en este artículo.
ssh-keygen crea las claves públicas y privadas. ssh-copy-id copia las claves públicas de localhost en el archivo remoto anfitrión y las authorized_keys.
ssh-copy-id también asigna los permisos necesarios en el $HOME del anfitrión remoto, ~/.ssh, y ~/.ssh/authorized_keys. (Esto tiene especial interes si tu IP pública es estática)
Condiciones previas, debes de crear el mismo usuario (antes de empezar), en los servidores local-host y remote-host
Este artículo también explica tres pequeñas molestias de usar ssh-copy-id y cómo usar ssh-copy-id junto con ssh-agent.
Configuración previa:
Verifica el archivo de configuración del servidor SSH (/etc/ssh/sshd_config
) y asegúrate de que las siguientes líneas estén habilitadas:
Si está comentada la linea, déjala comentada.
# PubkeyAuthentication no
# O cambia el valor.
PubkeyAuthentication yes
# ¡¡CUIADO!! Si pones "no", al valor: PasswordAuthentication pondrás en riesgo el servidor, ninguna cuenta
# pondrás en riesgo el servidor, ninguna cuenta requerirá contraseña si pones "no". deja el valor "yes"
PasswordAuthentication yes
Paso 1: Creación de claves públicas y privadas utilizando ssh-key-gen en local-anfitrión.
Esto puede saltarse, en el caso de que ya hubiera ssh-keygen creado.
jsmith@local-host$ [Nota: Ahora estás en tu localhost, el host que controlará "remote-host"] jsmith@local-host$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Pulse Intro aquí] Enter passphrase (empty for no passphrase): [Pulse Intro aquí] Enter same passphrase again: [Pulse Intro aquí] Your identification has been saved in /home/jsmith/.ssh/id_rsa. Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub. The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 jsmith@local-host
Paso 2: Copie la clave pública al host remoto usando ssh-copy-id
jsmith@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host jsmith@remote-host's password: [Introduce su password, y pulsa intro] Now try logging into the machine, with "ssh 'remote-host'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
En el caso de ser un usurio diferente debes identificarlo.jsmith@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub perico@remote-host
En caso de fallar, también puedes copiarlo por "scp" al directorio ".ssh/id_rsa.pub" o...cat ~/.ssh/id_rsa.pub | ssh usuario@ip_del_servidor "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Nota: ssh-copy-id añade las claves para el control remoto ssh-anfitrión / authorized_key.
Paso 3: Entrar al host remoto sin introducir la contraseña
jsmith@local-host$ ssh remote-host Last login: Sun Nov 16 17:22:33 2012 from 192.168.1.2 [Note: SSH no preguntará por el password.]
jsmith@remote-host$ [Nota: ahora estás en el servidor remoto]
Estos 3 simples pasos deben hacer el trabajo en la mayoría de los casos.
Truco.
Archivos Configurables para Multiples Claves o Servidores: Si administras varios servidores, puedes crear un archivo de configuración SSH para facilitar la administración en ~/.ssh/config
. Por ejemplo:
Host servidor1
HostName ip_del_servidor
User usuario
IdentityFile ~/.ssh/id_rsa
Esto te permite conectarte simplemente ejecutando: ssh servidor1.
También discutimos anteriormente en detalle acerca de la realización de SSH y SCP utilizando OpenSSH para entrar sin contraseña.
Utilizar ssh-copy-id con ssh-add/ssh-agent
Cuando el valor se pasa por la opción -i y Si ~/.ssh/identity.pub no está disponible, ssh-copy-id mostrará el siguiente mensaje de error.
jsmith@local-host$ ssh-copy-id -i remote-host
/usr/bin/ssh-copy-id: ERROR: No identities found
Si ha cargado llaves del ssh-agent con el ssh-add, entonces ssh-copy-id recibirá las llaves del ssh-agent para copiar en el host remoto, es decir, que copia las claves proporcionadas por el comando ssh-add -L para el host remoto, cuando no pasa la opción -i para el ssh-copy-id.
# >> Si al escribir, obtenemos un resultado similar a este:
jsmith@local-host$ ssh-add -L The agent has no identities.
# >> Escribimos lo siguiente para pasar la "shell al sistema remoto".
jsmith@local-host$ ssh-agent $SHELL
# >> Introducimos la clave (si procede, vacía, para no pedirla)
jsmith@local-host$ ssh-add
Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)
# >> Lo verificamos
jsmith@local-host$ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsJIEILxftj8aSxMa3d8t6JvM79DyBV
aHrtPhTYpq7kIEMUNzApnyxsHpH1tQ/Ow== /home/jsmith/.ssh/id_rsa
# >> (En princpio, podría no hacer falta, pero si quieres puedes copiar la Id al host remoto.)
jsmith@local-host$ ssh-copy-id -i remote-host
jsmith@remote-host's password:
Now try logging into the machine, with "ssh 'remote-host'",
and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
[Nota: Esto ha añadido la clave mostrado por ssh-add -L]
Tres pequeñas molestias de ssh-copy-id
A continuación se presentan algunas molestias menores del ssh-copy-id.
Default public key: ssh-copy-id utiliza ~/.ssh/ identity.pub como el archivo predeterminado de clave pública (es decir, cuando no hay valor se pasa a la opción -i). En su lugar, me gustaría utilizar id_dsa.pub o id_rsa.pub o identity.pub como claves predeterminadas. es decir, si cualquiera de ellos existe, se debe copiar para el host remoto. Si dos o tres de ellos existen, se debe copiar identity.pub como predeterminado.
El agente no tiene identidad: Cuando el ssh-agent se está ejecutando y ssh-add -L devuelve "El agente no tiene identidad" (es decir, no hay claves que se agregan al ssh-agent), el ssh-copy-id todavía copiará el mensaje "El agente no tiene identidad" para la entrada de la máquina remota de authorized_keys.
Duplicar entrada en authorized_keys: Deseo ssh-copy-id valida la entrada duplicada en authorized_keys del host remoto. Si ejecuta ssh-copy-id varias veces en el host local, se mantendrá anexar la misma clave en el archivo de authorized_keys del host remoto sin comprobación de duplicados. Incluso con las entradas duplicadas, todo funciona como se esperaba.
-
Seguridad
- Cómo limitar las conexiones SSH (puerto TCP 22) con ufw en Ubuntu Linux
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
- Consejos de Seguridad para Pagos Móviles en España: Protege tus Transacciones con Estos Consejos Prácticos
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023