Вопрос: Как узнать, какой ключ использовался для аутентификации с открытым ключом?


Несколько разработчиков используют общую учетную запись на тестовом сервере, используя аутентификацию с открытым ключом. Есть ли способ узнать, какой ключ использовался для аутентификации (например, комментарий к клавишам)?


7
2017-12-17 13:21


Источник




Ответы:


Вы хотите узнать это после того, что уже произошло (криминалистика), или вы хотите сделать так, чтобы вы могли регистрировать, кто что делает?

Для судебной экспертизы: на моей системе Fedora, /var/log/secure содержит записи каждой аутентификации открытого ключа и имени пользователя, но не говорит, какой ключ использовался. Вам, вероятно, не повезло здесь

Для будущей аудитоспособности: вы можете использовать authorized_keys файл для установки команд, для которых каждый вход ограничен, а затем запустить программу, которая регистрирует аутентификацию (и, возможно, последующие команды, используя что-то вроде sudoscript):

Если фраза опций в начале строки содержит ключевое слово command = "string", то любое ssh-соединение, которое проверяет подлинность с использованием этого конкретного ключа, будет выполнять только указанную команду, даже если в командной строке задана другая команда.

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


5
2017-12-17 14:36



Спасибо за ваш ответ. К счастью, мне это нужно на будущее. Будет ли эта команда запускаться вместо оболочки входа? Как узнать, какой пользовательский интерфейс настроен для пользователя, и запустить его после выполнения конкретных действий? - Gyongyeee
Тривиальный бит getent а также cut решит это для вас. - womble♦
Да, это будет работать вместо оболочки входа - и ответ womble должен помочь вам там: getent passwd $USER | cut -d: -f 7 - David Fraser


... используя общую учетную запись ...

Спасибо, что дали нам прекрасный пример, чтобы объяснить, почему это плохая идея. ;-)

Серьезно, хотя, вы хотите, чтобы вы не могли сделать afaik. И если по «key comment» вы имеете в виду комментарий, который находится в файле id_rsa после ключа, это тоже не работает. Это комментарий, он не отправляется на сервер с другой стороны.

В самом деле. Настройте несколько учетных записей.


5
2017-12-17 14:50



Не удается переключиться на несколько учетных записей. Проверьте связанный комментарий для настройки безопасной общей учетной записи: serverfault.com/questions/14012/... - Gyongyeee
В этом комментарии говорится, как сделать некоторые дополнительные защищенные вещи с помощью AuthorizedKeys, а не с общей учетной записью. - wzzrd


Если вы установите sshd для регистрации на достаточно подробном уровне, будет напечатан отпечаток ключа, используемого для входа в систему. Тем не менее, заполняет ваши журналы ужасно быстро.


4
2017-12-17 16:52



Это не вариант, но спасибо - Gyongyeee


Для аудитоспособности и если ваши люди используют ssh-agent, вы можете поместить это в свой .bashrc:

SSH_KEY_NAME=$(ssh-add -L | cut -d' ' -f 3 || 'unknown')
if [[ ! $SSH_KEY_NAME ]]; then SSH_KEY_NAME="no agent"; fi
echo `/bin/date` $SSH_KEY_NAME >> ~/.login.log

1
2018-01-22 13:56