Skip to content

Test failure: ssh with OTP login in IPA environment #8292

@flo-renaud

Description

@flo-renaud

FreeIPA detected a regression using the @sssd/nightly copr repository in its tests performing ssh with an OTP token.

Reproducer:

  1. Enable the copr repositories for freeipa and sssd, install IPA on a Fedora 43 machine
dnf copr enable -y @freeipa/freeipa-master-nightly
dnf copr enable -y @sssd/nightly
dnf update -y && dnf install -y freeipa-server-dns
  1. Install IPA server
 ipa-server-install --domain ipa.test --realm IPA.TEST --setup-dns --forwarder 10.11.5.160 -a Secret123 -p Secret123 -U
  1. Create a user
echo Secret123 | kinit admin
echo Secret123 | ipa user-add sshuser1 --first otp --last user --password
  1. Set the password for the user
kdestroy -A; kinit sshuser1
  1. Configure OTP for the user
echo Secret123 | kinit admin
ipa user-mod sshuser1 --user-auth-type otp
ipa otptoken-add --owner sshuser1
  1. From another machine, try to ssh to the IPA server with the otp user:
ssh sshuser1@server.ipa.test
(sshuser1@server.ipa.test) Password: 
Received disconnect from 10.0.184.7 port 22:2: Too many authentication failures
Disconnected from 10.0.184.7 port 22

The same scenario works with sssd-client-2.11.1-4.fc43.x86_64 but fails with the version shipped in the copr repo sssd-client-2.12.0-0.251205.163524.gitbe5df3412.fc43.x86_64.
Note that the test was green last week with sssd-client-2.12.0-0.251127.142214.git637b7bcb7.fc43.x86_64.

Logs are available in our internal artifacts server:
https://$ARTIFACTS_SERVER/idm-ci/freeipa_upstream_nightly/Nightly-latest-sssd/master/2025-12-06_15-55/sssd/test_otp/1/report.html?sort=result

Extract from krb5_child.log:

(2025-12-06 16:14:05): [krb5_child[35964]] [tgt_req_child] (0x1000): [RID#6] Attempting to get a TGT
(2025-12-06 16:14:05): [krb5_child[35964]] [get_and_save_tgt] (0x0400): [RID#6] Attempting kinit for realm [UFREEIPA.TEST]
(2025-12-06 16:14:05): [krb5_child[35964]] [k5c_send_data] (0x0200): [RID#6] Received error code 0
(2025-12-06 16:14:05): [krb5_child[35966]] [sss_log_process_caps] (0x0100): [RID#8] Starting under ruid=994, euid=994, suid=994 : rgid=994, egid=994, sgid=994
(2025-12-06 16:14:05): [krb5_child[35966]] [sss_log_process_caps] (0x0100): [RID#8] With following capabilities:
         CAP_DAC_READ_SEARCH: effective =  0 , permitted = *1*, inheritable =  0 , bounding = *1*
                  CAP_SETGID: effective =  0 , permitted = *1*, inheritable =  0 , bounding = *1*
                  CAP_SETUID: effective =  0 , permitted = *1*, inheritable =  0 , bounding = *1*
(2025-12-06 16:14:05): [krb5_child[35966]] [unpack_buffer] (0x1000): [RID#8] total buffer size: [98]
(2025-12-06 16:14:05): [krb5_child[35966]] [unpack_buffer] (0x0100): [RID#8] cmd [249 (pre-auth)] uid [1210600004] gid [1210600004] validate [true] enterprise principal [false] offline [false] UPN [sshuser1@UFREEIPA.TEST]
(2025-12-06 16:14:05): [krb5_child[35966]] [unpack_buffer] (0x0100): [RID#8] ccname: [KCM:] old_ccname: [not set] keytab: [/etc/krb5.keytab]
(2025-12-06 16:14:05): [krb5_child[35966]] [k5c_setup_fast] (0x0100): [RID#8] Fast principal is set to [host/master.ufreeipa.test@UFREEIPA.TEST]
(2025-12-06 16:14:05): [krb5_child[35966]] [match_principal] (0x1000): [RID#8] Principal matched to the sample (host/master.ufreeipa.test@UFREEIPA.TEST).
(2025-12-06 16:14:05): [krb5_child[35966]] [check_fast_ccache] (0x0200): [RID#8] FAST TGT is still valid.
(2025-12-06 16:14:05): [krb5_child[35966]] [sss_log_process_caps] (0x0100): [RID#8] Running under ruid=1210600004, euid=1210600004, suid=994 : rgid=1210600004, egid=1210600004, sgid=994
(2025-12-06 16:14:05): [krb5_child[35966]] [sss_log_process_caps] (0x0100): [RID#8] With following capabilities:
   (nothing)
(2025-12-06 16:14:05): [krb5_child[35966]] [set_lifetime_options] (0x0100): [RID#8] No specific renewable lifetime requested.
(2025-12-06 16:14:05): [krb5_child[35966]] [set_lifetime_options] (0x0100): [RID#8] No specific lifetime requested.
(2025-12-06 16:14:05): [krb5_child[35966]] [set_canonicalize_option] (0x0100): [RID#8] Canonicalization is set to [true]
(2025-12-06 16:14:05): [krb5_child[35966]] [main] (0x0400): [RID#8] Will perform pre-auth
(2025-12-06 16:14:05): [krb5_child[35966]] [tgt_req_child] (0x1000): [RID#8] Attempting to get a TGT
(2025-12-06 16:14:05): [krb5_child[35966]] [get_and_save_tgt] (0x0400): [RID#8] Attempting kinit for realm [UFREEIPA.TEST]
(2025-12-06 16:14:05): [krb5_child[35966]] [k5c_send_data] (0x0200): [RID#8] Received error code 0
(2025-12-06 16:14:06): [krb5_child[35964]] [unpack_buffer] (0x1000): [RID#6] total buffer size: [121]
(2025-12-06 16:14:06): [krb5_child[35964]] [unpack_buffer] (0x0100): [RID#6] cmd [241 (auth)] uid [1210600004] gid [1210600004] validate [true] enterprise principal [false] offline [false] UPN [sshuser1@UFREEIPA.TEST]
(2025-12-06 16:14:06): [krb5_child[35964]] [unpack_buffer] (0x0100): [RID#6] ccname: [KCM:] old_ccname: [not set] keytab: [/etc/krb5.keytab]
(2025-12-06 16:14:06): [krb5_child[35964]] [answer_otp] (0x0080): [RID#6] Unexpected authentication token type [Password]
(2025-12-06 16:14:06): [krb5_child[35964]] [get_and_save_tgt] (0x0020): [RID#6] 2463: [1432158313][Unknown code UUz 105]
********************** PREVIOUS MESSAGE WAS TRIGGERED BY THE FOLLOWING BACKTRACE:
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [sss_log_process_caps] (0x0100): [RID#6] Starting under ruid=994, euid=994, suid=994 : rgid=994, egid=994, sgid=994
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [sss_log_process_caps] (0x0100): [RID#6] With following capabilities:
         CAP_DAC_READ_SEARCH: effective =  0 , permitted = *1*, inheritable =  0 , bounding = *1*
                  CAP_SETGID: effective =  0 , permitted = *1*, inheritable =  0 , bounding = *1*
                  CAP_SETUID: effective =  0 , permitted = *1*, inheritable =  0 , bounding = *1*
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [unpack_buffer] (0x1000): [RID#6] total buffer size: [98]
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [unpack_buffer] (0x0100): [RID#6] cmd [249 (pre-auth)] uid [1210600004] gid [1210600004] validate [true] enterprise principal [false] offline [false] UPN [sshuser1@UFREEIPA.TEST]
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [unpack_buffer] (0x0100): [RID#6] ccname: [KCM:] old_ccname: [not set] keytab: [/etc/krb5.keytab]
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [k5c_setup_fast] (0x0100): [RID#6] Fast principal is set to [host/master.ufreeipa.test@UFREEIPA.TEST]
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [find_principal_in_keytab] (0x4000): [RID#6] Trying to find principal host/master.ufreeipa.test@UFREEIPA.TEST in keytab.
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [match_principal] (0x1000): [RID#6] Principal matched to the sample (host/master.ufreeipa.test@UFREEIPA.TEST).
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [get_tgt_times] (0x1000): [RID#6] FAST ccache must be recreated
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [check_fast_ccache] (0x0200): [RID#6] FAST TGT was successfully recreated!
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [sss_log_process_caps] (0x0100): [RID#6] Running under ruid=1210600004, euid=1210600004, suid=994 : rgid=1210600004, egid=1210600004, sgid=994
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [sss_log_process_caps] (0x0100): [RID#6] With following capabilities:
   (nothing)
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [set_lifetime_options] (0x0100): [RID#6] No specific renewable lifetime requested.
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [set_lifetime_options] (0x0100): [RID#6] No specific lifetime requested.
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [set_canonicalize_option] (0x0100): [RID#6] Canonicalization is set to [true]
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [main] (0x0400): [RID#6] Will perform pre-auth
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [tgt_req_child] (0x1000): [RID#6] Attempting to get a TGT
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [get_and_save_tgt] (0x0400): [RID#6] Attempting kinit for realm [UFREEIPA.TEST]
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [sss_krb5_auth_methods_request] (0x4000): [RID#6] Got request [otp].
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [request_otp] (0x4000): [RID#6] [0] Vendor [(null)].
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [request_otp] (0x4000): [RID#6] [0] Token-ID [(null)].
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [request_otp] (0x4000): [RID#6] [0] Challenge [(null)].
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [request_otp] (0x4000): [RID#6] [0] Flags [1].
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [request_otp] (0x4000): [RID#6] Setting otp prompting.
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [sss_krb5_auth_methods_request] (0x4000): [RID#6] Request found for otp
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [k5c_send_data] (0x0200): [RID#6] Received error code 0
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [pack_response_packet] (0x2000): [RID#6] response packet size: [16]
   *  (2025-12-06 16:14:05): [krb5_child[35964]] [k5c_send_data] (0x4000): [RID#6] Response sent.
   *  (2025-12-06 16:14:06): [krb5_child[35964]] [unpack_buffer] (0x1000): [RID#6] total buffer size: [121]
   *  (2025-12-06 16:14:06): [krb5_child[35964]] [unpack_buffer] (0x0100): [RID#6] cmd [241 (auth)] uid [1210600004] gid [1210600004] validate [true] enterprise principal [false] offline [false] UPN [sshuser1@UFREEIPA.TEST]
   *  (2025-12-06 16:14:06): [krb5_child[35964]] [unpack_buffer] (0x0100): [RID#6] ccname: [KCM:] old_ccname: [not set] keytab: [/etc/krb5.keytab]
   *  (2025-12-06 16:14:06): [krb5_child[35964]] [sss_krb5_auth_methods_answer] (0x4000): [RID#6] Got question [otp].
   *  (2025-12-06 16:14:06): [krb5_child[35964]] [answer_otp] (0x0080): [RID#6] Unexpected authentication token type [Password]
   *  (2025-12-06 16:14:06): [krb5_child[35964]] [sss_krb5_auth_methods_answer] (0x4000): [RID#6] Auth type [otp] could not be handled by answer function, continuing to next question.
   *  (2025-12-06 16:14:06): [krb5_child[35964]] [get_and_save_tgt] (0x0020): [RID#6] 2463: [1432158313][Unknown code UUz 105]
********************** BACKTRACE DUMP ENDS HERE *********************************

The test source is available here

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions