sshd日志logging尝试login时没有私钥

在我的VPS上运行Debian 7,我在默认端口22上启用了ssh,只启用了私钥authentication,所有其他端口都使用iptables进行过滤。 我经常在伪造用户名的情况下获得来自中国的login尝试,例如“plesk”或“r00t”,显示在我的/var/log/auth.log

唯一的问题是authentication尝试不提供私钥,并尝试在有效的用户名下login,日志中出现的唯一行

sshd [4364]:连接closures了123.45.67.89 [preauth]

当sshd日志logging级别设置为VERBOSE时,会打印一条附加行,指出连接的用户和他们连接的端口。

有什么办法让sshd日志,它断开用户,因为他们缺less一个私钥?

你的问题的答案是否定的。至less,不是没有采取英雄的措施(例如,运行DEBUG级别和处理脚本)比一些明智的select更难。 相同的[preauth]错误报告为没有密钥或无效的密钥。

另一方面,如果他们真的连接,你的日志将明确地说

 Jul 7 15:59:38 ws6 sshd[9578]: Accepted password for robohacker... 

要么

 Jul 7 15:59:38 ws6 sshd[9578]: Accepted publickey for robohacker... 

你可以做的是进一步强化你的configuration。 您已经需要一个密钥,您还可以使用AllowUsersAllowGroups命令来防止未经特别授权的任何人的连接。

就个人而言,我总是安装DenyHosts,虽然它似乎没有最近的更新。 我听说Fail2Ban也不错

您可以使用“作弊” – 在auth部分的/etc/pam.d/ssh(d)中,您可以在pam_unix或@include common-auth语句之前添加日志语句(pam_log)。 如果这个声明被击中,那么已经尝试了密码authentication。

任何sshd可以执行的日志都将logging在man sshd_config 。 尝试search“日志”,但我没有看到任何具体的东西 – 主要是LogLevel和SyslogFacility,虽然也许MaxAuthTries会帮助。

在详细模式下,你的sshd确实已经logging了disconnect语句。

如果您需要更多的信息,您也可以使用最终的DEBUG日志logging模式,但是要小心这个日志logging模式,因为日志会在没有良好的日志转换策略的情况下快速增长;-)