Назад | Перейти на главную страницу

Эквивалентны ли возможности ведения журнала SSH журналу su для аутентификации с закрытым / открытым ключом?

Здесь, на работе, у нас есть общая учетная запись без полномочий root в UNIX, которая используется для администрирования определенного приложения. Политика запрещает прямой вход в общую учетную запись; вы должны войти в систему как вы и использовать команду «su» для перехода на общую учетную запись. Это сделано для регистрации / безопасности.

Я начал использовать SSH-аутентификацию с открытым / закрытым ключом с агентом, чтобы позволить мне вводить свой пароль один раз в день и позволить агенту пересылать запросы на ввод пароля до конца дня. Это действительно хорошо.

Однако некоторые системы заблокированы, поэтому мне действительно нужно использовать команду «su», чтобы получить доступ к общей учетной записи. Арг! Вернемся к постоянному вводу паролей!

Достаточно ли информации, зарегистрированной с помощью аутентификации с открытым / закрытым ключом SSH, чтобы я имел разумные шансы запросить изменение политики, чтобы разрешить удаленный вход в общую учетную запись, если используются открытые / закрытые ключи?

У меня был администратор, который заглянул в / var / log / secure, и он просто сказал, что открытый ключ был принят для учетной записи пользователя с определенного IP-адреса. Он не сказал, чей это был открытый ключ или чей закрытый ключ выполнял аутентификацию.

Есть много уровней ведения журнала, доступных через sshd_config файл. Увидеть страница руководства и ищи LogLevel. Уровень по умолчанию INFO но это банально легко поднять до VERBOSE или даже один из DEBUG# уровни.

Кроме того, вам следует изучить sudo как альтернатива su. Полное обсуждение преимуществ sudo это будет отдельный вопрос. Но я могу сказать это с помощью sudo вы можете настроить, как часто вам нужно вводить пароль, какие команды можно запускать и т. д., все это можно контролировать через sudoers файл конфигурации.

Другой способ - переехать authorized_keys вне области действия пользователя (например, чтобы /etc/ssh/authorized_keys), чтобы только системные администраторы могли контролировать, какие открытые ключи могут использоваться для входа в указанные учетные записи.

Раньше мы меняли AuthorizedKeysFile директива в sshd_config примерно к следующему.

AuthorizedKeysFile /etc/ssh/authorized_keys/%u

Затем создайте и заполните /etc/ssh/authorized_keys каталог с файлами для каждого пользователя, который должен иметь возможность войти, убедившись, что root файл доступен для чтения / записи только пользователю root, а другие файлы доступны для чтения соответствующему пользователю, например:

-rw-------  1 root root    1,7K 2008-05-14 14:38 root
-rw-r-----  1 root john     224 2008-11-18 13:15 john

Каждый файл содержит набор открытых ключей, которым будет разрешен вход в данную учетную запись. Довольно часто для каждой учетной записи пользователя есть соответствующая группа.

Использование открытых / закрытых ключей - лучший метод управления доступом удаленных пользователей. Вам не нужно менять пароль каждый месяц (вам также не нужно его устанавливать), и вам не нужно менять его только потому, что сотрудник покинул вашу компанию, просто удалите свой открытый ключ; и, конечно же, с параметрами SSH (http://www.openbsd.org/cgi-bin/man.cgi?query=sshd&sektion=8#SSHRC) вы можете уточнить, что и откуда у данного пользователя может быть доступ.

Аутентификация открытого / закрытого ключа SSH отличается от аутентификации хоста. Тебе здесь не повезло. Вы можете запросить, чтобы членам определенной группы было разрешено запускать определенные административные команды через sudo без пароля - как в примере ниже, пользователи secretaries группа для управления счетами:


# file: /etc/sudoers
...
%secretaries    ALL= NOPASSWD: /usr/bin/adduser, /usr/bin/rmuser   
...