Autenticación basada en host OpenSSH - mm_answer_keyallowed: la clave 0x58c400 no está permitida

Autenticación basada en host OpenSSH - mm_answer_keyallowed: la clave 0x58c400 no está permitida

Estoy intentando configurar la autenticación basada en host para un pequeño subconjunto de hosts. Creo que tengo todos mis patos en fila:

  • Copié las claves públicas del /etc/ssh/ssh_known_hostsarchivo.
  • Pon todos los hosts en/etc/shosts.equiv
  • Habilitado HostbasedAuthenticationen /etc/ssh/sshd_configy/etc/ssh/ssh_config
  • Configure el /usr/lib64/ssh/ssh-keysignbinario y configúrelo EnableSSHKeysign yesen el /etc/ssh/ssh_configarchivo de los clientes.

Sin embargo, todavía no funciona. Al ejecutar el servidor en modo de depuración, obtengo el siguiente resultado:

debug1: attempt 0 failures 0
debug3: mm_getpwnamallow entering
debug3: mm_request_send entering: type 6
debug3: monitor_read: checking request 6
debug3: mm_answer_pwnamallow
debug3: Trying to reverse map address 10.3.128.10.
debug3: mm_getpwnamallow: waiting for MONITOR_ANS_PWNAM
debug3: mm_request_receive_expect entering: type 7
debug3: mm_request_receive entering
debug2: parse_server_config: config reprocess config len 137
debug3: mm_answer_pwnamallow: sending MONITOR_ANS_PWNAM: 1
debug3: mm_request_send entering: type 7
debug2: monitor_read: 6 used once, disabling now
debug3: mm_request_receive entering
debug2: input_userauth_request: setting up authctxt for kamil
debug3: mm_start_pam entering
debug3: mm_request_send entering: type 45
debug3: mm_inform_authserv entering
debug3: mm_request_send entering: type 3
debug2: input_userauth_request: try method none
debug3: monitor_read: checking request 45
debug1: PAM: initializing for "kamil"
debug1: PAM: setting PAM_RHOST to "foo.bar.com"
debug1: PAM: setting PAM_TTY to "ssh"
debug2: monitor_read: 45 used once, disabling now
debug3: mm_request_receive entering
debug3: monitor_read: checking request 3
debug3: mm_answer_authserv: service=ssh-connection, style=
debug2: monitor_read: 3 used once, disabling now
debug3: mm_request_receive entering
debug1: userauth-request for user kamil service ssh-connection method hostbased
debug1: attempt 1 failures 1
debug2: input_userauth_request: try method hostbased
debug1: userauth_hostbased: cuser kamil chost foo.bar.com. pkalg ssh-dss slen 55
debug3: mm_key_allowed entering
debug3: mm_request_send entering: type 20
debug3: monitor_read: checking request 20
debug3: mm_answer_keyallowed entering
debug3: mm_answer_keyallowed: key_from_blob: 0x58c400
debug2: userauth_hostbased: chost foo.bar.com. resolvedname foo.bar.com ipaddr 10.3.128.10
debug2: stripping trailing dot from chost foo.bar.com.
debug2: auth_rhosts2: clientuser kamil hostname foo.bar.com ipaddr 10.3.128.10
debug1: temporarily_use_uid: 1031/1028 (e=0/0)
debug3: mm_key_allowed: waiting for MONITOR_ANS_KEYALLOWED
debug3: mm_request_receive_expect entering: type 21
debug3: mm_request_receive entering
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 1031/1028 (e=0/0)
debug1: restore_uid: 0/0
Failed hostbased for kamil from 10.3.128.10 port 55105 ssh2
debug3: mm_answer_keyallowed: key 0x58c400 is disallowed
debug3: mm_request_send entering: type 21
debug3: mm_request_receive entering
debug2: userauth_hostbased: authenticated 0
debug1: userauth-request for user kamil service ssh-connection method hostbased
debug1: attempt 2 failures 2
debug2: input_userauth_request: try method hostbased
debug1: userauth_hostbased: cuser kamil chost foo.bar.com. pkalg ssh-rsa slen 143
debug3: mm_key_allowed entering
debug3: mm_request_send entering: type 20
debug3: monitor_read: checking request 20
debug3: mm_answer_keyallowed entering
debug3: mm_answer_keyallowed: key_from_blob: 0x58c400
debug2: userauth_hostbased: chost foo.bar.com. resolvedname foo.bar.com ipaddr 10.3.128.10
debug2: stripping trailing dot from chost foo.bar.com.
debug2: auth_rhosts2: clientuser kamil hostname foo.bar.com ipaddr 10.3.128.10
debug1: temporarily_use_uid: 1031/1028 (e=0/0)
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 1031/1028 (e=0/0)
debug1: restore_uid: 0/0
Failed hostbased for kamil from 10.3.128.10 port 55105 ssh2
debug3: mm_answer_keyallowed: key 0x58c400 is disallowed
debug3: mm_request_send entering: type 21
debug3: mm_request_receive entering
debug3: mm_key_allowed: waiting for MONITOR_ANS_KEYALLOWED
debug3: mm_request_receive_expect entering: type 21
debug3: mm_request_receive entering
debug2: userauth_hostbased: authenticated 0
debug1: userauth-request for user kamil service ssh-connection method keyboard-interactive
debug1: attempt 3 failures 3
debug2: input_userauth_request: try method keyboard-interactive

El meollo del problema parece ser la siguiente línea:

debug3: mm_answer_keyallowed: key 0x58c400 is disallowed

¿Ideas?

Respuesta1

¿Lo tienes EnableSSHKeysignhabilitado en el cliente? Esa era otra pieza que necesitaba para que funcionara la autenticación basada en host.

Respuesta2

Vale, gran fracaso de mi parte. Había creado /etc/shosts.equiven lugar de /etc/ssh/shosts.equiv(ver punto 2 de mi pregunta). La razón por la que funcionó en algunos de mis otros sistemas fue que también tenían un /etc/hosts.equivarchivo residual de algún trabajo anterior realizado por un compañero de trabajo.

Las cosas funcionan mucho mejor cuando los archivos correctos están en la ubicación correcta. Fue necesario utilizar un poco straceel servidor para descubrir qué estaba leyendo y de qué archivos para finalmente darme una pista sobre la respuesta.

Respuesta3

¿Estás en Debian con una clave de host antigua? El paquete openssh-blacklist puede estar impidiendo el uso de claves afectadas porla infame vulnerabilidad SSL.

Regenere sus claves de host si este es el caso.

información relacionada