https://bugs.kde.org/show_bug.cgi?id=494981
Bug ID: 494981 Summary: Kerberos auth doesn't work since libsmbclient 4.21 Classification: Frameworks and Libraries Product: kio-extras Version: 24.08.2 Platform: Arch Linux OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: Samba Assignee: plasma-b...@kde.org Reporter: pie...@neviem.eu CC: sit...@kde.org Target Milestone: --- SUMMARY STEPS TO REPRODUCE 1. Get Kerberos TGT (i.e. run kinit) 2. Connect to a smb:// uri in KDE Dolphin, where the server supports Kerberos authentication OBSERVED RESULT The system asks for credentials (username, domain, password). EXPECTED RESULT Kerberos is used for authentication and no password is asked from the user. SOFTWARE/OS VERSIONS Linux: 6.11.3-arch1-1 KDE Plasma Version: 6.2.1 KDE Frameworks Version: 6.7.0 Qt Version: 6.8.0, 5.15.15 ADDITIONAL INFORMATION Kerberos in KIO works when smbclient 4.20.4-1 is installed, but it doesn't work in anything newer (smbclient-2:4.21.*). smbclient command in terminal correctly authenticates without password using Kerberos in all versions of smbclient. The problem seems to lie in the integration between kio smb worker and libsmbclient. I tried to read through samba changelog+commit log since samba 4.20. No mentions of relevant changes in changelogs, but there are multiple commits touching Kerberos authentication for clients. Unfortunately, I'm not competent enough to understand the impact on kio smb worker. I made a packet trace using Wireshark. The Samba server offers both Kerberos and NTLM in it's Negotiate protocol response: mechTypes: 3 items MechType: 1.2.840.48018.1.2.2 (MS KRB5 - Microsoft Kerberos 5) MechType: 1.2.840.113554.1.2.2 (KRB5 - Kerberos 5) MechType: 1.3.6.1.4.1.311.2.2.10 (NTLMSSP - Microsoft NTLM Security Support Provider) The client then selects NTLMSSP immediately. I've been used to mount a samba share with a headless script. Please see the output of kio smb worker debug log + pacman installation log: okt 18 08:52:18 mylaptop kioworker[3795]: kf.kio.workers.smb: auth_initialize_smbc okt 18 08:52:18 mylaptop kioworker[3795]: kf.kio.workers.smb: Setting debug level to: 0 okt 18 08:52:18 mylaptop kioworker[3795]: kf.kio.workers.smb: Using libsmbclient library version QVersionNumber(4.21.1) okt 18 08:52:18 mylaptop kioworker[3795]: kf.kio.workers.smb: QUrl("smb://sambaserver.example.org/") okt 18 08:52:18 mylaptop kioworker[3795]: kf.kio.workers.smb: checkURL QUrl("smb://sambaserver.example.org/") okt 18 08:52:18 mylaptop kioworker[3795]: kf.kio.workers.smb: checkURL return3 QUrl("smb://sambaserver.example.org/") okt 18 08:52:18 mylaptop kioworker[3795]: kf.kio.workers.smb: updateCache "/" okt 18 08:52:18 mylaptop kioworker[3795]: kf.kio.workers.smb: QUrl("smb://sambaserver.example.org/") okt 18 08:52:18 mylaptop kioworker[3795]: kf.kio.workers.smb: checkURL QUrl("smb://sambaserver.example.org/") okt 18 08:52:18 mylaptop kioworker[3795]: kf.kio.workers.smb: checkURL return3 QUrl("smb://sambaserver.example.org/") okt 18 08:52:18 mylaptop kioworker[3795]: kf.kio.workers.smb: updateCache "/" okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: QUrl("smb://sambaserver.example.org/") okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: checkURL QUrl("smb://sambaserver.example.org/") okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: checkURL return3 QUrl("smb://sambaserver.example.org/") okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: updateCache "/" okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: Starting discovery. okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: auth_smbc_get_dat: set user= mysername , workgroup= WORKGROUP server= sambaserver.example.org , share= IPC$ okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: updateCache "/IPC$" okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: libsmb-auth-callback URL: QUrl("smb://sambaserver.example.org/IPC$") okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: auth_smbc_get_dat: set user= mysername , workgroup= WORKGROUP server= sambaserver.example.org , share= IPC$ okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: updateCache "/IPC$" okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: libsmb-auth-callback URL: QUrl("smb://sambaserver.example.org/IPC$") okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: open "smb://sambaserver.example.org/" url-type: 2 dirfd: -1 errNum: 22 okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: Discovery finished. okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: trying checkPassword okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: checkPassword for QUrl("smb://sambaserver.example.org/") okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: call openPasswordDialog for QUrl("smb://sambaserver.example.org/") okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: no value from openPasswordDialog; error: 1 okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: user cancelled password request okt 18 08:52:36 mylaptop kioworker[3795]: kf.kio.workers.smb: errNum 22 okt 18 09:06:15 mylaptop pacman[5240]: Running 'pacman -U https://archive.archlinux.org/packages/s/smbclient/smbclient-4.20.4-1-x86_64.pkg.tar.zst' okt 18 09:06:16 mylaptop pacman[5240]: transaction started okt 18 09:06:16 mylaptop pacman[5240]: downgraded smbclient (2:4.21.1-1 -> 4.20.4-1) okt 18 09:06:16 mylaptop pacman[5240]: transaction completed okt 18 09:06:16 mylaptop pacman[5240]: running '30-systemd-update.hook'... okt 18 09:06:16 mylaptop pacman[5240]: running '90-packagekit-refresh.hook'... okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: auth_initialize_smbc okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: Setting debug level to: 0 okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: Using libsmbclient library version QVersionNumber(4.20.4) okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: QUrl("smb://sambaserver.example.org/") okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: checkURL QUrl("smb://sambaserver.example.org/") okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: checkURL return3 QUrl("smb://sambaserver.example.org/") okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: updateCache "/" okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: Starting discovery. okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: auth_smbc_get_dat: set user= mysername , workgroup= WORKGROUP server= sambaserver.example.org , share= IPC$ okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: updateCache "/IPC$" okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: libsmb-auth-callback URL: QUrl("smb://sambaserver.example.org/IPC$") okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: auth_smbc_get_dat: set user= mysername , workgroup= WORKGROUP server= sambaserver.example.org , share= IPC$ okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: updateCache "/IPC$" okt 18 09:06:26 mylaptop kioworker[5287]: kf.kio.workers.smb: libsmb-auth-callback URL: QUrl("smb://sambaserver.example.org/IPC$") okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: open "smb://sambaserver.example.org/" url-type: 2 dirfd: 10000 errNum: 0 okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: smbc_readdir okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: dirent name: "ebooks" comment: "share1" type: 3 okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: smbc_readdir okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: dirent name: "software" comment: "share2" type: 3 okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: smbc_readdir okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: dirent name: "prevadzka" comment: "share3" type: 3 okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: smbc_readdir okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: dirent name: "projekty" comment: "share4" type: 3 okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: smbc_readdir okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: dirent name: "temporary" comment: "share5" type: 3 okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: smbc_readdir okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: dirent name: "archiv" comment: "share6" type: 3 okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: smbc_readdir okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: dirent name: "IPC$" comment: "IPC Service (sambaserver server)" type: 6 okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: SMBC_UNKNOWN : "IPC$" okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: smbc_readdir okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: dirent name: "mysername" comment: "Home Directories" type: 3 okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: smbc_readdir okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: done with smbc okt 18 09:06:27 mylaptop kioworker[5287]: kf.kio.workers.smb: Discovery finished. The command generating the logs above: dbus-send --session --print-reply --type=method_call --dest=org.kde.KIOFuse /org/kde/KIOFuse org.kde.KIOFuse.VFS.mountUrl "string:smb://sambaserver.example.org/" -- You are receiving this mail because: You are watching all bug changes.