OpenSSH-Hostbasierte Authentifizierung – mm_answer_keyallowed: Schlüssel 0x58c400 ist nicht zulässig

OpenSSH-Hostbasierte Authentifizierung – mm_answer_keyallowed: Schlüssel 0x58c400 ist nicht zulässig

Ich versuche, hostbasierte Authentifizierung für eine kleine Teilmenge von Hosts einzurichten. Ich glaube, ich habe alles im Griff:

  • Die öffentlichen Schlüssel in die /etc/ssh/ssh_known_hostsDatei kopiert
  • Setzen Sie alle Hosts in/etc/shosts.equiv
  • Aktiviert HostbasedAuthenticationin /etc/ssh/sshd_configund/etc/ssh/ssh_config
  • Setzen Sie die /usr/lib64/ssh/ssh-keysignBinärdatei mit Setuid fest und legen Sie sie EnableSSHKeysign yesin der /etc/ssh/ssh_configDatei auf den Clients fest.

Es funktioniert jedoch immer noch nicht. Wenn ich den Server im Debugmodus ausführe, erhalte ich die folgende Ausgabe:

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

Der Kern des Problems scheint die Zeile zu sein:

debug3: mm_answer_keyallowed: key 0x58c400 is disallowed

Ideen?

Antwort1

Haben Sie EnableSSHKeysignes auf dem Client aktiviert? Das war ein weiteres Teil, das ich brauchte, um die hostbasierte Authentifizierung zum Laufen zu bringen.

Antwort2

Okay, großer Fehler meinerseits. Ich hatte /etc/shosts.equivanstelle von /etc/ssh/shosts.equiv(siehe Punkt 2 meiner Frage) erstellt. Der Grund, warum es auf einigen meiner anderen Systeme funktionierte, war, dass sie auch eine Restdatei /etc/hosts.equivaus einer früheren Arbeit eines Kollegen hatten.

Wenn die richtigen Dateien am richtigen Ort sind, funktioniert alles viel besser. Ich musste straceden Server einige Zeit lang durchsuchen, um herauszufinden, was er aus welchen Dateien liest, und fand schließlich die Antwort.

Antwort3

Verwenden Sie Debian mit einem alten Hostschlüssel? Das Paket openssh-blacklist verhindert möglicherweise die Verwendung von Schlüsseln, die betroffen sind vondie berüchtigte SSL-Sicherheitslücke.

Generieren Sie in diesem Fall Ihre Hostschlüssel erneut.

verwandte Informationen