Рейтинг:0

Учетные данные Kerberos не обновляются на клиенте ipa ubuntu

флаг kz

Когда я использую ssh для входа в свой клиент freeipa, я получаю учетные данные Kerberos (klist). Однако по истечении срока их действия я больше не получаю учетные данные (klist пуст). Это приводит к отсутствию домашнего каталога, поскольку у пользователя нет разрешений для nfs. Я могу использовать kinit для получения новых учетных данных. Перезапуск sssd и повторный вход в систему с помощью ssh также дает новый билет.. Использование sudo также позволяет получить билеты.

Я даже не знаю, какой процесс отвечает за запрос билета, поэтому понятия не имею, с чего начать отладку проблемы. У меня Ubuntu 20.04, и я использовал пакет freeipa-client для установки клиента.

Любая помощь будет оценена по достоинству.

YuvGM avatar
флаг kz
Оказывается, проблема в том, что я использовал открытый ключ для аутентификации с помощью ssh. Билеты создаются только тогда, когда я использую аутентификацию по паролю. Теперь вопрос почему? Это так задумано или мне нужно что-то настроить.
Рейтинг:1
флаг ng

Если вы используете открытый ключ ssh для аутентификации, вы выполняете аутентификацию только для своего демона ssh, а не для системы. Демон SSH будет утверждать, что он выполнил аутентификацию, а затем войдет в оболочку. Хотя этот процесс может использовать стек PAM для настройки сеанса входа в систему, он, тем не менее, не обрабатывает аутентификацию через стек PAM.

Я могу заявить вам, что это очевидно, но билет Kerberos можно получить только в том случае, если вы используете программное обеспечение, которое его запрашивает. В типичной системе такой билет будет запрашиваться через PAM. авторизация этап, если либо pam_sss или же pam_krb5 определяется в авторизация стек конфигурации PAM, используемой вашим приложением. Когда такое приложение (например, sshd) пропускает авторизация этапе ни один из модулей PAM, отвечающих за аутентификацию, не вызывается, и таким образом нельзя получить билет Kerberos.

Когда клиент Kerberos пытается запросить начальный билет на предоставление билетов (TGT), он и Kerberos KDC обмениваются списком так называемых «методов предварительной проверки подлинности». На практике это методы, используемые для аутентификации вашего клиента в KDC. Один метод, выбранный клиентом, если он принят KDC, реализует фактический процесс аутентификации. Не существует методов предварительной аутентификации Kerberos, использующих пару ключей SSH для аутентификации, поэтому вы не можете использовать пару ключей SSH для получения TGT. Все стандартные методы предварительной проверки подлинности на основе пароля основаны на клиенте Kerberos и KDC Kerberos, которым известен долгосрочный ключ (пароль) участника-пользователя, даже если они не передают его по сети. В настоящее время существует один метод, который не зависит от пароля, и это так называемый метод PKINIT, который основан на завершении аутентификации с использованием инфраструктуры сертификатов открытого ключа.

Что ты можешь сделать? Возможно, вы захотите изменить все и вместо этого использовать смарт-карту для аутентификации. Проверка подлинности с помощью смарт-карты поддерживается Kerberos в качестве метода предварительной проверки подлинности pkinit.Кроме того, демон SSH может обрабатывать сертификат с вашей смарт-карты для аутентификации аналогично случаю с парой ключей SSH.

Если вы хотите использовать аутентификацию PKINIT, у вас есть два пути: либо получить Kerberos TGT с PKINIT на вашей рабочей станции и войти в демон SSH на другом компьютере, используя билет Kerberos, который у вас есть локально, либо использовать сертификат смарт-карты для входа в демон SSH в качестве Ключ SSH, а затем используйте переадресацию смарт-карт, чтобы напрямую запросить билет Kerberos на хосте. В первом случае ваш исходный TGT не будет автоматически перенаправлен на хост SSH, если только вы не запросите делегирование билета. В последнем случае вам все равно нужно запросить TGT.

Независимо от того, какой метод использовать, вы определенно можете извлечь выгоду из https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_certificates_in_idm/index

Если вы не хотите или не можете использовать смарт-карты, остается единственный способ — напрямую использовать вход через Kerberos и забыть об аутентификации по паре ключей SSH.

YuvGM avatar
флаг kz
Спасибо за исчерпывающий ответ. Это подтвердило мои подозрения, как только я понял, что билеты выдаются только после того, как я ввел свой пароль. Я признаю, что бродил по пути freeipa без необходимых знаний, надеясь, что смогу это сделать. В конечном счете, при столкновении с проблемой задействовано так много объектов и служб, что трудно отследить проблемы до их источников.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.