Periodically, my sshd stops updating utmp with login information. Restarting sshd doesn't resolve the problem, but rebooting my computer does. The last couple times this has happened, I've looked at the message log and seen lines like: Apr 20 00:14:00 wild1 sshd[16387]: Invalid user admin from 82.165.184.132 Apr 20 00:14:01 wild1 sshd[16392]: Invalid user guest from 82.165.184.132 Apr 20 00:14:02 wild1 sshd[16397]: Invalid user master from 82.165.184.132 Apr 20 00:14:12 wild1 sshd[16402]: Did not receive identification string from 82.165.184.132 After the "Did not receive identification" line, my logins stop updating utmp, and I get errors like: Apr 20 10:11:04 wild1 sshd[17729]: syslogin_perform_logout: logout() returned an error.
This might be a glibc/libutil bug - the error message "syslogin_perform_logout: logout() returned an error" indicates that the libutil logout() call failed. Unfortunately this API provides nothing much in error reporting. Can you strace a sshd that is failing and post the results? You might need to specify strace options to get it to follow fork() calls.
It's been over a year since I filed this bug. Since then, I've gone through several system upgrades, and the problem no longer occurs. Feel free to close this with whatever resolution is appropriate.
Thanks for the update.
Close resolved bugs after release.