Я хочу аутентифицироваться с SSH через Kerberos SSO. Теперь, когда я вошел в систему с моим основным пользователем на sourcehost я получаю свой билет Kerberos, но не могу использовать его для SSH в targethost .
Проблема, кажется, имя хоста. У меня есть основной host/targethost.example.com@EXAMPLE.COM но независимо от того, если я ssh targethost или ssh targethost.example.com он переводится в основной host/targethost@EXAMPLE.COM (см. Сообщение об ошибке ниже), который не существует
Я могу ошибаться, но я думаю, что все должно быть наоборот, и ssh targethost и ssh targethost.example.com должны быть переведены в основной host/targethost.example.com@EXAMPLE.COM .
Вот ошибка:
$ ssh targethost.example.com -v
...
debug1: Unspecified GSS failure. Minor code may provide more information
Server host/targethost@EXAMPLE.COM not found in Kerberos database
debug1: Unspecified GSS failure. Minor code may provide more information
Server host/targethost@EXAMPLE.COM not found in Kerberos database
debug1: Unspecified GSS failure. Minor code may provide more information
...
debug1: Next authentication method: password
testuser@targethost.example.com's password:
Кто-нибудь может объяснить, как принципал хоста получен из имени хоста и как это можно настроить (я, кстати, на Ubuntu)?
Редактировать:
Ответ grawity привел меня к решению, которое я считаю подходящим для моей конфигурации.
- В книге Гармана Kerberos я обнаружил, что канонизация на стороне KDC была предпочтительным способом.
- Для моего KDC, поддерживаемого LDAP, я нашел в документации Kerberos (внизу этой страницы) способ, как это можно реализовать.
Поэтому после создания принципала узла с помощью kdadmin.local / addprinc с полным доменным именем мне пришлось добавить псевдоним к новой записи субъекта в LDAP, запустив ldapmodify со следующим вводом:
dn: krbPrincipalName=host/targethost.example.com@EXAMPLE.COM,cn=EXAMPLE.COM,cn=krbContainer,dc=example,dc=com
replace: krbCanonicalName
krbCanonicalName: host/targethost.example.com@EXAMPLE.COM
-
add: krbPrincipalName
krbPrincipalName: host/targethost@EXAMPLE.COM
