ssh-copy-id versus copia manual id_rsa.pub

De un día para otro, el servidor de nuestra empresa empezó a pedirme mi contraseña SSH.

Lo primero que verifiqué fue si mi clave estaba dentro de .ssh/authorized_keys en el servidor. Mi llave estaba adentro, nada cambió. También en /etc/ssh/sshd_config nada ha cambiado.

Luego intenté hacer este procedimiento recientemente instalado el servidor Ubuntu16. Después de completar estos 5 pasos, el nuevo servidor me pidió nuevamente la contraseña SSH.

El comando ssh-copy-id finalmente logró el inicio de sesión SSH sin clave, pero he notado que .ssh/authorized_keys tiene tres líneas: una que comienza con ssh-dss y dos que comienzan con ssh-rsa

Ahora recuerdo que el procedimiento de 5 pasos del enlace anterior ha funcionado en el pasado con una sola clave.

¿Ha cambiado algo recientemente? ¿Por qué el procedimiento anterior ya no funciona?

Editar: Dado que ssh-copy-id copia en total 3 claves a .ssh/authorized_keys esas claves se puede encontrar en los siguientes archivos:

~/.ssh/id_dsa

~/.ssh/sshkey.pub

~/.ssh/id_rsa.pub

así que eliminé línea por línea del archivo remoto «s .ssh/authorized_keys

eliminado ~/.ssh/id_dsa línea – inicio de sesión automático exitoso

eliminado ~/.ssh/id_rsa.pub línea – inicio de sesión automático exitoso

eliminada ~/.ssh/sshkey.pub línea – inicio de sesión automático no se realizó correctamente: se solicitó la contraseña

Solo es necesario el contenido de ~/.ssh/sshkey.pub. Por qué SSH compara sshkey.pub y no id_rsa.pub como en el ejemplo del tutorial en línea?

Comentarios

  • Ciertamente no debido a cambios fundamentales en el archivo Authorized_keys o lo haría Me desperté un día para encontrarme bloqueado en un montón de máquinas.
  • ¿Qué tipo de clave y cuántos bits? el servidor con el que ' tiene problemas puede tener estándares más altos, posiblemente debido a una actualización de sshd. RSA de 1024 bits solía considerarse aceptable. hoy en día se requieren 2048 o 4096 bits.
  • también, agregue la salida de ssh -v your-remote-server a su pregunta.
  • ¿Aún tiene el 640 banderas en claves_autorizadas o algo más restrictivo (600)?

Respuesta

Parece que ssh-copy-id es simplemente una función de conveniencia. Verifica si las claves ya se exportaron a la máquina, crea el directorio .ssh si es necesario, pero básicamente solo agrega claves públicas a .ssh/authorized_keys . ssh-copy-id es un script de shell (en openssh), por lo que puede leer su código (vi `which ssh-copy-id`) al final:

[ "$DRY_RUN" ] || printf "%s\n" "$NEW_IDS" | \ ssh "$@" "exec sh -c "cd ; umask 077 ; mkdir -p .ssh && { [ -z ""`tail -1c .ssh/authorized_keys 2>/dev/null`"" ] || echo >> .ssh/authorized_keys ; } && cat >> .ssh/authorized_keys || exit 1 ; if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi"" \ || exit 1 

Durante la autenticación, solo se verifica authorized_keys. De la documentación de openssh:

El archivo ~ / .ssh / allowed_keys enumera el público claves que están permitidas para iniciar sesión. Cuando el usuario inicia sesión, el programa ssh le dice al servidor qué par de claves le gustaría usar para la autenticación. El cliente prueba que tiene acceso a la clave privada y el servidor verifica que la clave pública correspondiente esté autorizada para aceptar la cuenta.

Espero que esto responda el título de su pregunta «ssh-copy-id versus copia manual id_rsa.pub». Este archivo ~/.ssh/sshkey.pub no lo tengo, así que espero que hayas resuelto los problemas con tu configuración tú mismo. De todos modos, sí, puedes copiar manualmente la clave pública a authorized_keys no usa ssh-copy-id.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *