Чи може Bash сказати мені, який відкритий ключ SSH використовувався для автентифікації?


14

Скажімо, я хочу відстежувати своїх rootкористувачів. Кожен з них має унікальний приватний ключ, і їхні відкриті ключі зберігаються в /root/.ssh/authorized_keys.

З огляду на те, що кожен користувач входить зі своїм унікальним ключем, як я можу під час сеансу BASH дізнатися, який ключ використовувався для автентифікації? Коли я входив, я намагався переглянути змінні середовища, але не бачу нічого, що співвідносить сеанс із моїм відкритим ключем.


Трохи пов'язані: встановлення LogLevel VERBOSE у вашому (openssh) sshd_config запише відбиток ключа, який використовується для входу.
andol

Відповіді:


21

Ви можете додати ім'я користувача до відкритого ключа ~/.ssh/authorized_keysна сервері та експортувати його як значення середовища:

environment="REALUSER=realusername" ssh-dsa AAA...

Це встановить змінну середовища REALUSER, яка потім буде доступна для використання в bash. Це буде працювати лише в тому випадку, якщо PermitUserEnvironmentвстановлено значення truesshd_config


Ага .. справді? Класно! Ви маєте на увазі в ~/.ssh/authorized_keys? Я ніколи про це не знав.
ПП.

5
Так, це все. Ви можете там зробити багато цікавого - man sshдетальніше розповім під заголовком AUTHORIZED_KEYS FILE FORMAT.
Jenny D

4
Це може залежати від версії, але мені довелося скористатися, man sshdщоб знайти AUTHORIZED_KEYS FILE FORMATрозділ.
Меттью Крамлі

2
Майте на увазі, що включення PermitUserEnvironment має певні наслідки для безпеки. Читати man sshd
Флорін Андрій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.