Использование ключей SSH с Kerberos

Таким образом, существует проблема, которую мы имели в нашей компании, заставляющей меня вытащить мои волосы в течение прошлой недели:

У нас есть сотни полей сервера (соединение CentOS6/7, если имеет значение), что потребность быстро быть SSHed в ежедневно между командой. Все используют mRemoteNG или SuperPutty как способность сохранить и организовать информацию о соединении, а также снабженные вкладками соединения являются необходимой вещью. В настоящее время все совместно используют единственный ключ SSH для вхождения во все поля. Очевидно, наша существующая практика является ужасной идеей, поэтому что мы хотели бы сделать, делают каждому пользователю отдельный отчет и ключ, который будет использоваться через поля.

При оглядывании казалось, что Kerberos является идеальной опцией для управления многочисленными пользователями и обработки аутентификации через а-ля rge сумма серверов. К сожалению, у нас, кажется, есть некоторые проблемы в том, чтобы заставлять это проложить себе путь, мы хотим. Мы смогли настроить Kerberos для обработки соединений SSH для пользователей с паролями, но когда он пришел к отключению паролей и использованию ключи SSH, мы не могли понять это.

Мы изучили использование Kerberos keytabs также, howevever мы не могли заставить их работать через PuTTY или находить эффективное решение сохранить информацию о соединении и снабдили вкладками соединения с keytabs.

Основной вопрос здесь: Kerberos может использоваться для управления пользователями SSH с ключами SSH? В противном случае есть ли сборка PuTTY, доступного, который работает с Kerberos keytabs или альтернативой, которая может организовать и снабдила вкладками соединения?Спасибо!

3
задан 1 July 2015 в 21:35
3 ответа

Во-первых, уточнение. Ключи Kerberos и SSH являются двумя взаимоисключающими методами аутентификации для SSH. Вы не используете Kerberos с SSH ключами. Вы используете Kerberos вместо SSH ключей. Оба разрешают "без пароля" вход в SSH. Немного чтения по протоколу Kerberos может быть в порядке.

С Kerberos вам нужно получить TGT, который докажет, что вы тот, за кого себя выдаете, перед тем, как вы попытаетесь соединиться с вашей конечной точкой. Если вы находитесь на Windows, присоединенной к домену Active Directory, вы автоматически получаете Kerberos TGT для области Active Directory при входе в систему. Но многие организации не утруждают себя настройкой своих Linux хостов на использование области Active Directory Kerberos. Если Вы это сделаете, то жизнь станет намного проще. Если вы этого не сделаете, это означает, что Windows нужно настроить так, чтобы она знала о другой области Kerberos и о том, как запросить билет. Это также дополнительный шаг для ваших пользователей, потому что им нужно будет отказаться от своего AD TGT и запросить TGT для другой области.

У вас также есть возможность использовать доверие между областями Kerberos, чтобы (например) пользователи AD могли аутентифицироваться на ресурсах в другой области Kerberos.

Файл keytab Kerberos - это просто файловое представление пароля вашей учетной записи Kerberos. Поэтому при запросе вашего начального TGT вам не нужно будет вводить свой пароль, если у вас есть действительный файл с ключом. Но это также обычно выходит за рамки вашего SSH клиента.

Как только у вас есть действительный TGT, вам нужно убедиться, что ваш SSH клиент настроен на использование GSSAPI. PuTTY поддерживает это, и я уверен, что большинство других тоже так делают.

Если все настроено правильно, это должно "просто работать". Но есть много сбоев в настройке, которые могут произойти на этом пути. Есть также много сторонних продуктов, которые могут сделать вещи проще, но я воздержусь от упоминания чего-либо конкретного.

.
5
ответ дан 3 December 2019 в 04:52

PuTTY 0.61 или новее может использовать билеты Kerberos / GSSAPI (вместо аутентификации с открытым ключом) для аутентификации на сервере SSH. Чтобы включить это, перейдите в меню конфигурации PuTTY к «Соединение | SSH | Auth | GSSAPI» и убедитесь, что «Попытка аутентификации GSSAPI» включена. (Эквивалент клиента OpenSSH для Linux - "ssh -K".)

Есть два способа, которыми PuTTY может получить требуемый билет для выдачи билетов Kerberos:

  1. PuTTY имеет доступ к любому билету, полученному Windows из своего домена Active Directory. сервер, когда вы вошли в систему Windows, которая находится в домене. В этом случае нет необходимости делать что-то особенное, чтобы получить билет.

  2. В качестве альтернативы (например, на машине с Windows, не входящей в домен), PuTTY также имеет доступ к любым билетам, которые вы получили, запустив "MIT Kerberos Ticket" Диспетчер "GUI-инструмент, который поставляется с пакетом" MIT Kerberos для Windows "из http://web.mit.edu/kerberos/dist/ ). Просто используйте это, чтобы получить свой билет Kerberos, прежде чем запускать PuTTY. Если запущен «MIT Kerberos Ticket Manager», он автоматически запросит у вас пароль Kerberos, если он нужен PuTTY. Поэтому рекомендуется добавить ярлык для «MIT Kerberos Ticket Manager» в папку автозагрузки.

На стороне сервера sshd:

  • Получите с вашего KDC и установите в /etc/krb5.keytab таблицу ключей сервера .

  • В / etc / ssh / sshd_config убедитесь, что у вас есть GSSAPIAuthentication yes , чтобы включить аутентификацию Kerberos.

Убедитесь, что krb5.conf есть правильно настроены с обеих сторон, так что библиотеки GSSAPI, используемые putty и sshd, находят одну и ту же область и связываются с одним и тем же KDC (если только ваша область и KCD уже должным образом не объявлены через DNS, и в этом случае ничего не нужно добавлять в krb5.conf ).

6
ответ дан 3 December 2019 в 04:52

Я знаю, что ssh в cygwin будет поддерживать keytabs.

Следуйте этим инструкциям для настройки kerberos и ssh в cygwin: http://computing.help.inf.ed.ac.uk/kerberos-cygwin

Вместо шага «kinit username» выполнить:

kinit -kt /path/to/keytab username

(Затем ssh как обычно.)

-1
ответ дан 3 December 2019 в 04:52

Теги

Похожие вопросы