С помощью эта ссылка, Я настроил сервер, который правильно присоединен к серверу Active Directory, но по какой-то причине я не могу пройти аутентификацию на этом сервере с билетом Kerberos для нескольких тестовых пользователей, которые я сделал на своем ноутбуке.
Все пользователи на моем локальном ноутбуке имеют одинаковый .ssh / config и все используют один и тот же /etc/krb5.conf; все пользователи также могут успешно получить действительный билет из AD, просто используя kinit. Однако проблемы возникают, когда я пытаюсь подключиться по ssh к вышеупомянутому серверу, который присоединен к AD.
Когда я пытаюсь войти в систему с моей собственной учетной записью, «parkel», он запрашивает у меня мой пароль, я ввожу свой AD-пароль, и я получаю аутентификацию для входа на сервер, при первом входе в систему мой домашний адрес был сделан правильно и меня приписали к группам, указанным в gidNumber в AD; все в мире казалось нормальным. Я тестировал изменение gidNumber в AD, все изменения были активны сразу после переподключения. В мире все еще было хорошо.
Вот тогда и начались проблемы; Увидев свой успех, я сделал две тестовые учетные записи в AD, копии моей собственной учетной записи AD, которая работала раньше, «test1» и «test2». Я перешел на эту учетную запись на своем ноутбуке, сделал кинит и получил билет. Однако, когда я пытался войти на сервер, он только пытался пройти аутентификацию с помощью пароля, и в журналах никогда не упоминается, что он пытается аутентифицироваться с помощью pam_sss, поскольку локальный пользователь не существует, это с треском провалится.
Я проверил гораздо больше поисковых запросов и документации Google, чем мне хотелось бы признать, но здесь я действительно в растерянности; Я почти уверен, что упускаю из виду некоторые глупые мелочи, но я действительно не могу найти, в чем я ошибаюсь.
Включены некоторые выходные данные из журнала sshd на сервере и моего krb5.conf на сервере и на моем клиенте.
Dec 10 11:59:04 ldaptest.vs.lan sshd[2384]: Authorized to parkel, krb5 principal parkel@VS.LAN (ssh_gssapi_krb5_cmdok)
Dec 10 11:59:04 ldaptest.vs.lan sshd[2384]: Accepted gssapi-with-mic for parkel from 192.168.100.2 port 56752 ssh2
Dec 10 11:59:04 ldaptest.vs.lan systemd[1]: Created slice user-2001.slice.
Dec 10 11:59:04 ldaptest.vs.lan systemd[1]: Starting Session 3 of user parkel.
Dec 10 11:59:04 ldaptest.vs.lan systemd[1]: Started Session 3 of user parkel.
Dec 10 11:59:04 ldaptest.vs.lan systemd-logind[776]: New session 3 of user parkel.
Dec 10 11:59:04 ldaptest.vs.lan sshd[2384]: pam_unix(sshd:session): session opened for user parkel by (uid=0)
Dec 10 11:59:10 ldaptest.vs.lan sshd[2410]: Invalid user test1 from 192.168.100.2
Dec 10 11:59:10 ldaptest.vs.lan sshd[2410]: input_userauth_request: invalid user test1 [preauth]
[libdefaults]
default_realm = VS.LAN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = yes
[realms]
VS.LAN = {
kdc = ad01-test.vs.lan:88
admin_server = ad01-test.vs.lan:749
default_domain = vs.lan
}
[appdefaults]
pam = {
debug = true
ticket_lifetime = 36h
renew_lifetime = 36h
forwardable = true
krb4_convert = false
}
[logging]
default = FILE:/var/log/krb5/kdc.log
kdc = FILE:/var/log/krb5/kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
includedir /etc/krb5.conf.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = false
rdns = false
default_realm = VS.LAN
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
VS.LAN = {
kdc = 172.19.254.5
}
[domain_realm]
.vs.local = VS.LAN
vs.local = VS.LAN
[sssd]
domains = vs.lan
services = nss, pam, pac
config_file_version = 2
[nss]
[pam]
[pac]
[domain/vs.lan]
## Comment out if you want offline logins
# cache_credentials = true
ldap_id_mapping = False
default_shell = /bin/bash
fallback_homedir = /home/%d/%u
id_provider = ad
auth_provider = ad
access_provider = ad
chpass_provider = ad
ldap_schema = ad
dyndns_update = true
dyndns_refresh_interval = 43200
dyndns_update_ptr = true
dyndns_ttl = 3600
ad_server = ad01-test.vs.lan
В качестве ссылки в будущем эта строка журнала является ключевой:
Dec 10 11:59:10 ldaptest.vs.lan sshd[2410]: Invalid user test1 from 192.168.100.2
Он сообщает вам, что ssh может даже найти пользователя, поэтому следующим шагом в отладке должно быть включение журналов sssd и выяснение, почему getent passwd test1
не работает.
Рад, что теперь у вас работает sssd!
В конце концов я решил свою проблему, установив правильные значения uidNumber, gidNumber, homeDirectory и loginShell в AD для пользователя test1; очевидно, когда я скопировал своего рабочего пользователя, эти значения не были скопированы вместе со всей остальной информацией.