Я создал файл keytab в домашнем каталоге пользователя $HOME/client.keytab . Файл кэша аутентификации находится в расположении по умолчанию /tmp/krb5cc_%U (где% U - UID). Теперь у меня есть этот простой systemd unit файл , чтобы запустить службу, и получить ключи аутентификации:
[Unit]
Description=Initializes, caches and renews Kerberos tickets for user
After=default.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/usr/bin/kdestroy -q -c /tmp/krb5cc_%U
ExecStart=/usr/bin/kinit -V -l 30d -r 365d -k -t %h/client.keytab -c /tmp/krb5cc_%U %i@EXAMPLE.COM
ExecStartPost=/usr/bin/krenew -b -K 60 -k /tmp/krb5cc_%U
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=KerberosTicketing
[Install]
WantedBy=default.target
Это прекрасно работает, и создает и сохраняет билеты проверки подлинности Kerberos, если After указывает на default.target . Однако почему default.target? Это довольно поздно в процессе загрузки. Я бы предпочел, чтобы он работал в multi-user.target , чтобы я мог использовать сгенерированные заявки для монтирования удаленных файловых систем с серверов, которые не принимают публичную / частную аутентификацию.
РЕДАКТИРОВАТЬ: Если значение « After отличается от default.target или более поздней, kinit завершается с ошибкой kinit: Cannot find KDC for realm "EXAMPLE.COM" while getting initial credentials .
Я в основном пытаюсь сделать это: SSHFS автомонтирование через FSTAB с использованием Kerberos (GSSAPI).
