2

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

Переменная окружения SSH_CONNECTION дает мне IP-адрес клиента.

Я также хотел бы знать, какой открытый ключ из authorized_keys был использован и его комментарий (обычно по электронной почте).

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

2 ответа2

1

/var/log/auth.log будет содержать следующую запись:

Accepted publickey for <userid> from <IP address> port 57762 ssh2: RSA SHA256: <43 random characters>

"Случайные символы" - это отпечаток используемого открытого ключа. Вы можете указать отпечатки пальцев в вашем локальном файле авторизованных ключей, используя:

ssh-keygen -lf /home/user/.ssh/authorized_keys

который перечисляет отпечаток каждого ключа вместе с комментарием ключа (который обычно является электронным письмом ..)

1

Эта информация не доступна для вас по умолчанию. Но это может быть достигнуто несколькими способами.

Как непривилегированный пользователь

Вы можете использовать некоторые из функций , доступных в формате authorized_keys файла. Я считаю, что наиболее полезной для вас является environment .

В начале каждой строки authorized_keys перед самим ключом вы помещаете строку, подобную этой:

environment="SSH_KEY=name"

Где вы подставляете разные значения для name в каждой строке. Это позволит установить переменную окружения под названием SSH_KEY , когда эта конкретная строка из authorized_keys используется для проверки подлинности. Полный набор функций, которые вы можете использовать, можно найти с помощью man sshd .

Как системный администратор

Включите параметр ExposeAuthInfo в sshd_config и перезагрузите демон. Затем sshd запишет искомую информацию во временный файл. Путь к этому файлу можно найти в переменной среды SSH_USER_AUTH .

Дополнительную информацию о таких настройках можно найти с помощью man sshd_config .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .