GNU/Linux >> Tutoriales Linux >  >> Linux

3 pasos para realizar el inicio de sesión SSH sin contraseña usando ssh-keygen y ssh-copy-id

Puede iniciar sesión en un servidor Linux remoto sin ingresar la contraseña en 3 simples pasos usando ssky-keygen y ssh-copy -id como se explica en este artículo.

ssh-keygen crea las claves pública y privada. ssh-copy-id copia la clave pública del host local en el archivo authorized_keys del host remoto. ssh-copy-id también asigna el permiso adecuado a la casa del host remoto, ~/.ssh y ~/.ssh/authorized_keys.

Este artículo también explica 3 molestias menores del uso de ssh-copy-id y cómo usar ssh-copy-id junto con ssh-agent.

Paso 1:Cree claves públicas y privadas usando ssh-key-gen en el host local

jsmith@local-host$ [Note: You are on local-host here]

jsmith@local-host$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key]
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Pess enter key]
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 en el 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 agrega las claves del .ssh/authorized_key del host remoto.

Paso 3:Inicie sesión en el host remoto sin ingresar la contraseña

jsmith@local-host$ ssh remote-host
Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2
[Note: SSH did not ask for password.]

jsmith@remote-host$ [Note: You are on remote-host here]


Los 3 sencillos pasos anteriores deberían hacer el trabajo en la mayoría de los casos.

Anteriormente también discutimos en detalle cómo realizar SSH y SCP de openSSH a openSSH sin ingresar la contraseña.

Si está utilizando SSH2, discutimos anteriormente sobre cómo realizar SSH y SCP sin contraseña de SSH2 a SSH2, de OpenSSH a SSH2 y de SSH2 a OpenSSH.

Uso de ssh-copy-id junto con ssh-add/ssh-agent

Cuando no se pasa ningún valor para 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 claves en el ssh-agent usando ssh-add , luego ssh-copy-id obtendrá las claves del ssh-agent para copiar al host remoto. es decir, copia las claves proporcionadas por ssh-add -L comando al host remoto, cuando no pasa opción -i al ssh-copy-id .

jsmith@local-host$ ssh-agent $SHELL

jsmith@local-host$ ssh-add -L
The agent has no identities.

jsmith@local-host$ ssh-add
Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)

jsmith@local-host$ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsJIEILxftj8aSxMa3d8t6JvM79DyBV
aHrtPhTYpq7kIEMUNzApnyxsHpH1tQ/Ow== /home/jsmith/.ssh/id_rsa

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.
[Note: This has added the key displayed by ssh-add -L]

Tres molestias menores de ssh-copy-id

Las siguientes son algunas molestias menores del ssh-copy-id.

  1. Clave pública predeterminada: ssh-copy-id usa ~/.ssh/identity.pub como el archivo de clave pública predeterminado (es decir, cuando no se pasa ningún valor a option -i ). En su lugar, deseo que use id_dsa.pub, o id_rsa.pub, o identity.pub como claves predeterminadas. es decir, si alguno de ellos existe, debería copiarlo en el host remoto. Si existen dos o tres de ellos, debería copiar Identity.pub como predeterminado.
  2. El agente no tiene identidades: Cuando el ssh-agent se está ejecutando y ssh-add -L devuelve "El agente no tiene identidades" (es decir, no se agregan claves al ssh-agent), el ssh-copy-id seguirá copiando el mensaje "El agente no tiene identidades" en la entrada de claves_autorizadas del host remoto.
  3. Entrada duplicada en authorized_keys: Deseo que ssh-copy-id valide la entrada duplicada en las claves_autorizadas del host remoto. Si ejecuta ssh-copy-id varias veces en el host local, seguirá agregando la misma clave en el archivo authorized_keys del host remoto sin buscar duplicados. Incluso con entradas duplicadas, todo funciona como se esperaba. Pero, me gustaría tener mi archivo authorized_keys libre de desorden.


Si le gusta este artículo, márquelo como favorito en Delicioso y tropezar .


Linux
  1. Inicio de sesión SSH en el servidor RHEL 7 sin contraseña

  2. Cómo configurar el inicio de sesión SSH sin contraseña

  3. Contraseña Sin inicio de sesión SSH – CentOS 6 / RHEL 6

  4. ¿Inicio de sesión Ssh con contraseña de texto claro como parámetro?

  5. Ssh:¿cómo acelerar el inicio de sesión de Ssh demasiado lento?

¿Cómo configurar el inicio de sesión SSH sin contraseña usando ssh-keygen?

Cómo realizar una copia de seguridad remota de Linux mediante SSH

Inicio de sesión SSH sin contraseña en 3 pasos simples

Realice SSH y SCP sin ingresar la contraseña en openSSH

¿Cómo puedo realizar un `git pull` sin volver a ingresar mi contraseña de SSH?

Cómo ejecutar remotamente el comando ssh un comando sudo sin contraseña