Интегрировать Kerberos и Брелок

Ответы:

19

kinitв Mac OS X теперь (начиная с 10.9, возможно, раньше) есть встроенная поддержка сохранения пароля в цепочке для ключей через --keychainаргумент, выполняя то же самое, что и ответ Павла.

Использовать аутентификацию kinit --keychain; пароль будет сохранен после успешной аутентификации:

kinit --keychain
# or
kinit --keychain bob@MY.REAL.COM

Последующие kinitвызовы (которые не требуют --keychainаргумента) автоматически получат сохраненный пароль из вашей цепочки для ключей вместо того, чтобы предлагать вам ввести его.

миль
источник
Ничего себе вариант, даже не упомянутый на kinitстранице руководства , и работает хорошо. Ницца.
rogerdpack
14

На самом деле это возможно. Допустим, у вас есть учетная запись «bob» в области «MY.REAL.COM» с паролем «mypasswd». Затем в терминале наберите в одной строке

security add-generic-password -a "bob" -l "MY.REAL.COM (bob)" -s "MY.REALM.COM" -w "mypasswd" -c "aapl" -T "/usr/bin/kinit"

Это создаст элемент в вашей цепочке для ключей по умолчанию с именем «MY.REALM.COM (bob)» с вашими учетными данными Kerberos и kinit будет авторизован для доступа к нему. Вы можете добавить столько -T "/fulpath/program"переключателей, сколько захотите, каждый из которых предоставит доступ к определенной программе для использования ваших учетных данных kerberos. Например -T "/Applications/Mail.app/Contents/MacOS/Mail"добавим доступ к Mail.app.

Больше подробностей с man security.

После этого kinit bob@MY.REAL.COMне будет запрашивать пароль, но получит его из цепочки для ключей.

Павел
источник
1
Это обман!
Jathanism
1
Я не мог сделать эту работу, однако это работает с ответом Майлза
Брайс
-1

Только с кинитом это невозможно.

Вам придется написать или попросить кого-то написать отдельный интерфейс, который использует API-интерфейс Keychain Services для хранения и доступа к вашим паролям.

surfasb
источник
Я просто не понимаю, почему Keychain интегрирован, поэтому он запоминает фразу-пароль для ssh-ключа, но не может вспомнить пароль для Kerberos.
тиг
Это потому, что никто не удосужился его запрограммировать.
Surfasb