Windows 10 Pro下Event ID 4625缺失远程网络信息,SSH服务器失败登录日志无源IP详情的解决咨询
嘿,我太懂你这种闹心的感觉了——明明已经把计算机策略设成了记录成功和失败登录,结果SSH失败登录的Event ID 4625日志里,关键的源IP、端口这些网络信息全是“-”,根本没法追踪是谁在瞎尝试登录。先看看你贴的这条典型日志:
An account failed to log on.
Subject:
Security ID: SYSTEM
Account Name: DESKTOP-TEST1
Account Domain: WORKGROUP
Logon ID: 0x3E7Logon Type: 8
Account For Which Logon Failed:
Security ID: NULL SID
Account Name: -
Account Domain: -Failure Information:
Failure Reason: Unknown user name or bad password.
Status: 0xC000006D
Sub Status: 0xC000006AProcess Information:
Caller Process ID: 0x2638
Caller Process Name: C:\Windows\System32\OpenSSH\sshd.exeNetwork Information:
Workstation Name: -
Source Network Address: -
Source Port: -Detailed Authentication Information:
Logon Process: ...
针对这个问题,我给你几个亲测有效的解决步骤:
调整OpenSSH的配置,开启更详细的日志
打开隐藏文件夹C:\ProgramData\ssh里的sshd_config文件,找到LogLevel这一行,把默认的INFO改成VERBOSE(这个级别足够记录源IP,又不会产生太多冗余日志)。改完之后记得重启OpenSSH SSH Server服务——要么在服务管理器里找到它右键重启,要么用命令行敲net stop sshd && net start sshd。确认Windows审核策略的细节配置
按Win+R输入gpedit.msc打开组策略编辑器,依次走到「计算机配置→Windows设置→安全设置→本地策略→审核策略」,确保「审核登录事件」已经启用“失败”审核;再到「高级审核策略配置→系统审核策略→登录/注销→审核登录」,同样要勾选“失败”审核。有些时候默认策略看似开了,但高级策略没配置也会出问题。查看OpenSSH自身的专属日志
很多时候,Windows的4625日志在SSH预认证阶段(比如用户名错误)不会记录源IP,但OpenSSH自己的日志会有。你可以去C:\ProgramData\ssh\logs目录下找sshd.log文件,里面会明确记录每个登录尝试的源IP、端口,还有具体的失败原因。如果这个日志文件夹不存在,你可以在sshd_config里加两行配置:SyslogFacility LOCAL0和LogFile "C:\ProgramData\ssh\logs\sshd.log"来指定日志路径。
另外补充一句:如果你的Windows 10是比较旧的版本,内置的OpenSSH可能有这个日志bug,你可以通过设置→应用→可选功能里,找到OpenSSH Server,点击“修改”然后“修复”,或者直接更新到最新版本,也能解决部分日志缺失的问题。
备注:内容来源于stack exchange,提问作者Yuri

