Я пытаюсь настроить простую среду Kerberos, в которой клиентский сервер аутентифицируется для веб-службы (в моем случае OpenSSH) через сервер Kerberos.
Я создал файл keytab на KDC, но не совсем уверен, на какие серверы копировать файл. Мне нужно только скопировать его на машину, предлагающую услугу, или также на клиентскую машину, которая хочет пройти аутентификацию для услуги?
в нормальной ситуации файл keytab, который вы создали (обычно с использованием принципала (или экземпляра) учетной записи службы, например ssh / hostname) следует разместить на «клиенте» этой службы Kerberos.
и на этом клиенте вы будете использовать эту keytab (кэширование учетных данных) для аутентификации вашей службы в KDCс помощью такой команды (в случае службы это обычно выполняется службой в ее коде или через скрипт во время загрузки):
kinit -kt /path/to/keytab.file principal/name
keytabs каким-то образом содержат учетные данные вашей учетной записи (или служебной учетной записи) (например, принципала и пароля), поэтому вам не нужно проходить аутентификацию вручную, но вы можете сделать это автоматически, используя эту keytab (и keytab должен иметь строгие разрешения, естественно)
надеюсь, это поможет
примечание: KDC также использует keytabs, будьте осторожны, чтобы не загрузить эту keytab на ваш клиент! он содержит информацию KDC / kadmin!
Чтобы быть уверенным, что вы используете правильный, вы можете подключиться к своему KDC из клиента с помощью kadmin и создать там keytab, например:
client$ kadmin -p your_admin_login/admin # login to the KDC
client$ kadmin> ktadd -kt /path/to/keytab.keytab <principal_name> # generate a keytab locally for account principal_name
client$ kadmin> exit
client$ kinit -kt /path/to/keytab.keytab <principal_name> # test it
client$ <configure the keytab path in your app>
С уважением,