Изhttps://piv.idmanagement.gov/engineering/ssh/#ssh-from-macosи работает почти так же в Linux:
Чтобы просмотреть сертификаты на вашем Mac, введите:
pkcs15 -инструмент --список -открытые -ключи
Запишите идентификационный номер публичного ключа PIV AUTH.
Public RSA Key [PIV AUTH pubkey]
Object Flags : [0x0]
Usage : [0xD1], encrypt, wrap, verify, verifyRecover
Access Flags : [0x2], extract
ModLength : 2048
Key ref : 154 (0x9A)
Native : yes
ID : 01 (EXAMPLE ONLY)
DirectValue :
Используйте свой идентификатор публичного ключа PIV AUTH, чтобы просмотреть свой ключ SSH. Введите:
pkcs15 -инструмент --чтение -ssh -ключ 01
При появлении запроса введите PIN-код PIV/CAC. Ключ SSH будет выглядеть так:
ssh -rsa AAAAB3NzaC1yc2EAAAAADAQABAAABAQCyPn2dShOFLBnMraiP2MnLU....
Скопируйте ключ SSH и вставьте его в текстовый файл.
Если у вас есть учетная запись, вы можете войти на удаленный сервер. Введите:
ssh -I /usr/lib64/opensc -pkcs11.so @
Необязательно,вы можете обновить параметр в файле конфигурации /etc/ssh _до:
PKCS11Provider /usr/lib64/opensc -pkcs11.so
При появлении запроса введите PIN-код PIV/CAC. После проверки вы войдете на удаленный сервер.
Вот почему многие компании придерживаются политики, запрещающей учетным записям людей использовать ключи ssh... они склонны делиться ими и/или не помещать в них пароли, так что сами ключи в основном становятся паролями -в -файл -.
Более умные компании будут использовать продукт безопасности, чтобы контролировать, каким пользователям разрешено использовать ключи ssh, где можно использовать эти ключи и где разрешено начинать и заканчивать соединения.
Вы допускаете известное небезопасное, неконтролируемое поведение и пытаетесь поймать его после -факта -. Лучшим ответом будет полное прекращение такого поведения.
Тот же продукт безопасности, который помог бы вам контролировать использование ключа ssh, можно также использовать для регистрации нажатий клавиш в сеансе ssh. Таким образом, вы по-прежнему можете фиксировать уникальные события журнала, показывая источник и место назначения соединения, и видеть каждое уродливое нажатие клавиши, введенное пользователем... с результирующим выводом. Конечно, это коммерческое решение, но оно определенно даст вам то, что вы ищете.
Одним из хаков -из -варианта -будет использование уникальных файлов истории оболочки при каждом входе в учетную запись. По сути, вы бы определили HISTFILE как что-то вроде этого в пользовательском.bashrc (или эквивалентном):
TIMEST=`date +%Y.%m.%d-%H%M%S`
SOURCETERM=` who am i | awk '{print $5}'`
HISTFILE=.sh_history-$TIMEST"_"$SOURCETERM
Это приводит к созданию уникального файла истории оболочки для каждого сеанса с именем вроде:
$HOME/.sh_history-2021.09.16-022345_(1.2.3.4)
Это может дать вам то, что вы хотите, но если пользователи будут мудрыми, они могут легко изменить или удалить файл или назначить себе другой файл истории.
Вы пытаетесь обойти почти неразрешимую проблему. С точки зрения системы один и тот же пользователь просто входит в систему дважды. Команды, процессы, память и т. д. принадлежат одному UID, и ими может манипулировать кто угодно с таким же действующим UID.
Опять же, правильное решение — с самого начала предотвратить небезопасное поведение.