LinuxParty

Ratio: 4 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio desactivado
 

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)

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.

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:
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: 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.

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. 

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política