У меня есть сервер Kerberos v5, настроенный на машине Linux, и он очень хорошо работает при подключении к другим хостам (с использованием samba, ldap или ssh), для которых в моей базе данных kerberos есть участники.
Могу ли я использовать Kerberos для аутентификации на localhost? И если я могу, по каким причинам я не должен этого делать? Я не делал принципала Kerberos для localhost. Я не думаю, что должен; вместо этого я думаю, что принципал должен разрешить машину полностью hostname
. Это возможно?
В идеале мне нужен способ настроить это только на одном сервере (будь то Kerberos, DNS или ssh), но если каждой машине нужна какая-то настраиваемая конфигурация, это тоже сработает.
например $ ssh -v localhost
...
debug1: Unspecified GSS failure. Minor code may provide more information
Server host/localhost@EXAMPLE.COM not found in Kerberos database
...
РЕДАКТИРОВАТЬ:
Итак, у меня был плохой файл / etc / hosts. Если я правильно помню, исходная версия, которую я получил с Ubuntu, содержала две версии 127.0.0.1. IP-адреса, например: -
127.0.0.1 localhost
127.0.*1*.1 hostname
Без уважительной причины я давно сменил свой на:
127.0.0.1 localhost
127.0.*0*.1 hostname.example.com hostname
Казалось, что это отлично работает со всем, пока я не опробовал ssh с kerberos (недавняя попытка). Каким-то образом эта конфигурация привела к тому, что sshd разрешил принципалу kerberos машины на "host / localhost @ \ n", что, как я полагаю, имеет смысл, если он использует / etc / hosts для прямого и обратного поиска DNS вместо внешнего DNS. Итак, я закомментировал последнюю строку, и sshd волшебным образом начал аутентификацию с помощью gssapi-with-mic. Потрясающие. (Затем я исследовал localhost и задал вопрос)
Вы можете, используя канонизацию имени.
Изменить /etc/hosts
так что это похоже на:
127.0.0.1 hostname.domain.tld hostname localhost
::1 hostname.domain.tld hostname localhost
Таким образом, localhost -> 127.0.0.1 -> hostname.domain.tld, для которого на сервере есть запись keytab.
Вам придется делать это на каждом сервере.