Как узнать кто и с каким ключом авторизовывался по ssh

Лог авторизации по ssh расположен по адресу /var/log/auth.log (либо его вариации типа /var/log/auth.log.1, /var/log/auth.log-20171020 при ротации логов). Если посмотреть его, то обнаружатся записи на подобии:

Oct 20 11:18:13 server sshd[27690]: Accepted publickey for denis from 127.0.0.1 port 1234 ssh2: RSA 12:34:56:78:90:ab:cd:ef:gh:ij:kl:mn:op:qr:st:uv
Oct 20 11:18:13 server sshd[27690]: pam_unix(sshd:session): session opened for user denis by (uid=0)
Oct 20 11:18:13 server systemd-logind[123]: New session 151 of user denis.
Oct 20 11:18:13 server systemd: pam_unix(systemd-user:session): session opened for user denis by (uid=0)

Трудность заключается в том, что мы видим, что под определённым IP (в примере выше 127.0.0.1) авторизовался клиент с помощью публичного ключа (publickey) под некоторым пользователем (denis), но какой именно клиент, а конкретнее — какой именно публичный ключ был использован для авторизации — не ясно.

Запись ssh2: RSA 12:34:56:78:90:… сходу нам ни о чём не говорит, ведь добавленные в ~/.ssh/authorized_keys публичные ключи имеют вид:

ssh-rsa AAAAAAAbnFij3rfsdoinsfdo3243SHDBSJJJS/*r3HJDD... email@server.loc

Что же делать, чтобы узнать кто конкретно из клиентов авторизовывался под анализируемыми пользователем и IP:

На помощь нам приходит команда ssh-keygen. Но прежде, чем ею воспользоваться, нужно разбить .ssh/authorized_keys на отдельные файлы с каждым публичным ключом. После этого, для каждого файла выполняем вышеуказанную команду со следующими параметрами:

ssh-keygen -lf -E md5 filewithpublickey.pub

И наблюдаем RSA хэш в нужном формате:

2048 MD5:12:34:56:78:90:ab:cd:ef:gh:ij:kl:mn:op:qr:st:uv email@server.loc (RSA)

Сверяем полученную хэш сумму с тем, что в логе auth.log и, при совпадении, определяем, какой из публичных ключей использовался для авторизации по ssh. И вот теперь мы знаем какой именно публичный ключ использовался для авторизации по ssh в нужное время. Осталось дело за малым — по email, либо комментарию к публичному ключу (вы ведь при добавлении в authorized_keys добавляете комментарии, чей это ключ? 😉 ), либо по памяти/пытками узнаем владельца.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *