hosts.allow: %u 不工作(登录用户名)

Mar*_*ter 4 ssh sshd xinetd tcp-wrappers

我需要跟踪SSH服务器上的所有连接。在我的/etc/hosts.allow我有这样的事情:

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

其中%a记录客户端IP,并%u应该记录用户名。而是%u只是记录unknown。有没有办法来解决这个问题?我需要记录每个连接的 IP 和用户名。

cas*_*cas 6

%u,如果客户端机器运行的客户端的用户名唯一已知identd,并提供关于请求的用户名。

tcp 包装器 ietcpd执行 identd 查找,如果没有从客户端机器得到答案,则返回“未知”。

identd在 90 年代,跑步曾经是一种常见的做法,但现在非常不常见 - 许多客户端(例如 Windows 机器)甚至没有 identd 或类似的程序。

简而言之,您将获得“未知”信息,因为客户端计算机不提供该信息。

无论如何,您的 sshd 应该记录所有连接尝试 - 检查 /var/log/auth.log 或 /var/log/syslog 或 /var/log/messages(取决于您的发行版以及您的 syslogd 的配置方式)。