Ssh
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 wrappers ie
tcpd
進行 identd 查找,如果沒有從客戶端機器得到答案,則返回“未知”。執行
identd
在 90 年代曾經是一種常見的做法,但現在非常罕見 - 許多客戶端(例如 Windows 機器)甚至沒有 identd 或類似的程序。簡而言之,您會得到“未知”,因為客戶端機器沒有提供該資訊。
無論如何,您的 sshd 都應該記錄所有連接嘗試 - 檢查 /var/log/auth.log 或 /var/log/syslog 或 /var/log/messages(取決於您的發行版和 syslogd 的配置方式)。