hosts.allow:% u не работает (имя пользователя журнала)

Мне нужно отслеживать все SSH подключения на моем сервере. В моем /etc/hosts.allow меня есть что-то вроде этого:

 sshd: ALL : spawn ( echo "`date` from %u %a " >> /var/log/ssh/%d.log ) & 

где %a регистрирует IP-адрес клиента, а %u должен регистрировать имя пользователя. Но вместо этого %u просто регистрирует unknown . Есть ли способ исправить это? Мне нужно записать как IP, так и имя пользователя для каждого подключения.

Имя пользователя клиента %u известно только в том случае, если машина на стороне клиента работает identd и предоставляет имя пользователя по запросу.

tcp, т. е. tcpd выполняет поиск идентификатора и возвращает «неизвестный», если он не получает ответа от клиентской машины.

Запуск identd был общепринятой практикой еще в 90-х годах, но в наши дни это необычно редко, и многие клиенты (например, машины Windows) даже не имеют идентификатор или аналогичную программу.

Короче говоря, вы получаете «неизвестно», потому что клиентская машина не предоставляет эту информацию.

Ваш sshd должен регистрировать все попытки подключения в любом случае – проверьте /var/log/auth.log или / var / log / syslog или / var / log / messages (в зависимости от вашего дистрибутива и от того, как настроен ваш syslogd).