У меня вопрос к Samba 4 и Kerberos. У меня был работающий SSH с SSO. Но теперь, когда я установил Samba 4, она не работает, и кажется, что еще никто не нашел решения. Я только что прочитал, что это было действительно сложно и сложно или В Windows все работает нормально, но в Linux пока нет. и так далее.
Проблема в том, что Samba 4 по-другому реализует Kerberos. И, похоже, это как-то несовместимо с такими инструментами Linux, как SSH. Когда я бегу sshd
в режиме отладки я вижу, что он пишет:
debug1: Unspecified GSS failure. Minor code may provide more information
No key table entry found matching host/bolbro.barbucha.local@
Но я не могу добавить такого принципала в основную базу данных Samba. (Хотя его не существует, samba-tool spn add
пишет, что на него влияет другой пользователь.)
Мой пост может звучать сбивчиво, но должен сказать, что я еще не совсем понимаю, в чем дело, и могу неправильно использовать в своем тексте некоторые термины. У кого-нибудь есть опыт работы с Samba 4 и SSH-клиентом без пароля? Вы когда-нибудь преуспевали в Samba 4 и SSO на клиенте Linux?
Большое спасибо за любой намек или объяснение. (Я использую Debian Squeeze, Bolbro - это машина, Samba 4 и SSHD работают. Та же проблема влияет на ksu
также.)
К сожалению, пока не нашел решения этой проблемы, но на моем компьютере сейчас работает нечто подобное. Чтобы NSLCD работал с использованием GSSAPI, я сделал эти команды на стороне сервера:
#create an user with a random password
samba-tool user add --random-password ldap-connect
#the password must not expire
samba-tool user setexpiry --noexpiry ldap-connect
#create a SPN (security principal name)
samba-tool spn add nslcd/bolbro.barbucha.local ldap-connect
#export key table of the user ldap-connect
samba-tool domain exportkeytab krb5.nslcd.keytab --principal=ldap-connect
Каждый участник безопасности (nslcd
) назначается машине (bolbro.barbucha.local
), а служба, использующая это SPN, аутентифицируется как пользователь (ldap-connect
). Всегда может быть только один участник безопасности <услуга> / <машина>. Вы не можете создать nslcd/bolbro.barbucha.local
снова и назначить его другому пользователю. Субъект безопасности host/bolbro.barbucha.local
уже существует. Сегодня я думаю, что может быть достаточно просто экспортировать ключевую таблицу пользователя, которому назначено критическое SPN.
Посмотрим…
Я нашел решение сегодня (2014-03-02). Да, это действительно так. Я сделал следующие шаги:
net ads join -U administrator
, где net
одна из утилит Samba/etc/ssh/sshd_config
на стороне сервера и /etc/ssh/ssh_config
на стороне клиента линия GSSAPIAuthentication no
и перезаписал no
с участием yes
; включен аналогично GSSAPIDelegateCredentials
на стороне клиентаnet ads keytab create
чтобы экспортировать необходимые ключи в /etc/krb5.keytab
/etc/hosts
на стороне сервераЯ не знаю почему, но когда я казнил sshd
на стороне сервера в режиме отладки (/usr/sbin/sshd -d
), Я увидел сообщение, что есть не найдена запись в таблице ключей, соответствующая host / bolbro @. Ожидаемое имя сервера (указано klist -k /etc/krb5.keytab
на стороне сервера) bolbro.barbucha.local
. Добавить IP-адрес сервера и полное имя bolbro.barbucha.local
к /etc/hosts
решил проблему.