Если вы используете открытый ключ 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.