Issue: authd provider selection rejects all input over SSH on Ubuntu 24.04
- Dominant language
- Go
- Stars
- 308
- Forks
- 41
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 58
Description
### Is there an existing issue for this?
- [x] I have searched the existing issues and found none that matched mine
### Describe the issue
Ubuntu Server 24.04
authd:
0.6.4~ubuntu24.04
Tested with:
authd-msentraid 0.4.0 (stable)
authd-msentraid 0.4.1 (candidate)
Azure / Microsoft Entra configuration:
- Tenant configured
- Client ID configured
- GroupMember.Read.All Application Permission granted
- Admin Consent granted
Broker registration:
com.ubuntu.authd.MSEntraID
Issue:
SSH login prompts for provider selection:
== Provider selection ==
1. local
2. Microsoft Entra ID
Entering:
1
2
local
Microsoft Entra ID
always returns:
Unsupported input
Reproduced locally:
ssh localhost -l user@domain.com
Relevant logs:
authd-pam: Failed to open PAM TTY: open ssh: no such file or directory
Failed sending message to pam:
System error: dbus: connection closed by user
authd successfully creates temporary identity:
Added temporary record for user
Using new UID 10000
SSH configuration:
usepam yes
kbdinteractiveauthentication yes
Expected:
Selecting provider 1 or 2 should continue authentication flow.
Actual:
All input is rejected with "Unsupported input".
### Steps to reproduce
The issue is reproducible consistently (100% of the time).
Environment
Ubuntu Server 24.04 LTS
authd 0.6.4
authd-msentraid 0.4.0 (stable)
Previously tested with authd-msentraid 0.4.1 (candidate) with identical results
Microsoft Entra ID broker configured and registered
GroupMember.Read.All permission granted and admin consent applied
Reproduction steps
Install and configure authd and authd-msentraid on Ubuntu 24.04.
Configure Microsoft Entra ID broker with:
Tenant ID
Client ID
Microsoft Graph GroupMember.Read.All permission
Admin consent granted
### System information and logs
``
#### authd apt history
```
```
#### authd broker configuration
#### /etc/authd/brokers.d/msentraid.conf
```
# This section is used by authd to identify and communicate with the broker.
# It should not be edited.
[authd]
name = Microsoft Entra ID
brand_icon = /snap/authd-msentraid/current/broker_icon.png
dbus_name = com.ubuntu.authd.MSEntraID
dbus_object = /com/ubuntu/authd/MSEntraID
```
#### authd-msentraid configuration
```
[oidc]
issuer = https://login.microsoftonline.com//v2.0
client_id =
## Force remote authentication with the identity provider during login,
## even if a local method (e.g. local password) is used.
## This works by forcing a token refresh during login, which fails if the
## user does not have the necessary permissions in the identity provider.
##
## If set to false (the default), remote authentication with the identity
## provider only happens if there is a working internet connection and
## the provider is reachable during login.
##
## Important: Enabling this option prevents authd users from logging in
## if the identity provider is unreachable (e.g. due to network issues).
#force_provider_authentication = false
[msentraid]
## Enable automatic device registration with Microsoft Entra ID
## when a user logs in through this broker.
##
## If set to true, authd will attempt to register the local machine
## as a device in Entra ID upon successful login.
##
## If set to false (the default), device registration will be skipped.
#register_device = false
[users]
#ssh_allowed_suffixes_first_auth = @helloworld.com.au
ssh_allowed_suffixes_first_auth = *
allowed_users = ALL
## The directory where the home directories of new users are created.
## Existing users will keep their current home directory.
## The home directories are created in the format /
#home_base_dir = /home
## By default, SSH only allows logins from users that already exist on the
## system.
## New authd users (who have never logged in before) are *not* allowed to log
## in for the first time via SSH unless this option is configured.
##
## If configured, only users with a suffix in this list are allowed to
## authenticate for the first time directly through SSH.
## Note that this does not affect users that already authenticated for
## the first time and already exist on the system.
##
## Suffixes must be comma-separated (e.g., '@example.com,@example.org').
## To allow all suffixes, use a single asterisk ('*').
##
## Example:
## ssh_allowed_suffixes_first_auth = @example.com,@anotherexample.org
##
## Example (allow all):
## ssh_allowed_suffixes_first_auth = *
##
#ssh_allowed_suffixes_first_auth =
## 'allowed_users' specifies the users who are permitted to log in after
## successfully authenticating with the identity provider.
## Values are separated by commas. Supported values:
## - 'OWNER': Grants access to the user specified in the 'owner' option
## (see below). This is the default.
## - 'ALL': Grants access to all users who successfully authenticate
## with the identity provider.
## - : Grants access to specific additional users
## (e.g. user1@example.com).
## Example: allowed_users = OWNER,user1@example.com,admin@example.com
#allowed_users = OWNER
## 'owner' specifies the user assigned the owner role. This user is
## permitted to log in if 'OWNER' is included in the 'allowed_users'
## option.
##
## If this option is left unset, the first user to successfully log in
## via this broker will automatically be assigned the owner role. A
## drop-in configuration file will be created in broker.conf.d/ to set
## the 'owner' option.
##
## To disable automatic assignment, you can either:
## 1. Explicitly set this option to an empty value (e.g. owner = "")
## 2. Remove 'OWNER' from the 'allowed_users' option
##
## Example: owner = user2@example.com
#owner =
## A comma-separated list of local groups which authd users will be
## added to upon login.
## Example: extra_groups = users
#extra_groups =
## Like 'extra_groups', but only the user assigned the owner role
## (see 'owner' option) will be added to these groups.
## Example: owner_extra_groups = sudo,lpadmin
#owner_extra_groups =
```
#### authd-google configuration
```
cat: /var/snap/authd-google/current/broker.conf: No such file or directory
```
#### authd-oidc configuration
```
cat: /var/snap/authd-oidc/current/broker.conf: No such file or directory
```
### Double check your logs
- [x] I have redacted any sensitive information from the logs
Contributor guide
Research direction
Start by reproducing the failure with `ssh localhost -l user@domain.com`, then inspect the provider-selection flow alongside the reported authd-pam logs and `/etc/authd/brokers.d/msentraid.conf`. Verify the configured Microsoft Entra broker and SSH settings, and consider the issue complete when selecting `1` or `2` proceeds with authentication instead of returning `Unsupported input`.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, go, ubuntu
- Domain
- authentication, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100