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.

-
Espacio
- El primer satélite construido con paneles de madera fue lanzado al espacio
- Lo que quise saber del Universo pero la mala divulgación no contó
- ¿Puede existir vida en el espacio sin un planeta? Un nuevo estudio revela una respuesta sorprendente
- Los competidores de SpaceX se esfuerzan por construir cohetes reutilizables
- Descifraron la señal ¡Wow!: y su resultado no te gustará
- Starlink ya está disponible en todos los vuelos Airbus de Hawaiian Airlines
- Hace 4.500 millones de años, otro planeta impactó contra la Tierra. Hemos encontrado sus restos.
- Estudio Revela que las Civilizaciones Avanzadas en la Vía Láctea Podrían ser Extremadamente Raras
- Plutón no regresará, pero los astrónomos quieren redefinir los planetas nuevamente
- La Voyager 1 regresa a las operaciones científicas normales
- China aterriza con éxito una sonda en la cara oculta de la Luna y comienza a recolectar muestras
- Un estudio confirma la predicción de Einstein: los agujeros negros tienen una "región que se hunde"
- La Voyager 1, la primera nave en el espacio interestelar, puede haberse quedado a oscuras
- Adiós al Ingenuity, Perseverence toma una foto del helicóptero dañado y abandonado en Marte.
- Una Kilonova a años luz de la tierra, representa un potencial peligro para nuestro planeta