可疑的密码login在sshd日志中

我有一个运行在Windows虚拟机下的Linux服务器。 我用sshpublickeylogin,并使用lftp的sftpfunction进行文件传输,也使用publickey

今天当我检查日志文件时,有一件事使我非常困惑:

11月28日21:39:06软服务器sshd [11933]:从10.0.2.2端口50590接受publickey为myusername ssh2 11月28日21:39:06软服务器sshd [11933]:pam_unix_session(sshd:会话):会话打开为用户myusername(uid = 0)

11月28日21:39:25软服务器sshd [11946]:从10.0.2.2端口13494 ssh2接受密码myusername

11月28日21:39:25 soft-server sshd [11946]:pam_unix_session(sshd:session):通过(uid = 0)为用户myusername打开的会话

11月28日21:39:25 soft-server sshd [11948]:用户myusername对sftp的子系统请求

11月28日21:40:16 soft-server sshd [11935]:从10.0.2.2:11收到断开连接:被用户断开连接

11月28日21:40:16软服务器sshd [11933]:pam_unix_session(sshd:会话):会话closures用户myusername

我怎样才能突然使用密码login? 有没有可能我自己的操作使这种行为发生?

那么,这是从你的IP地址合法的sftp-via-ssh连接。 要么你已经键盘locking,或者(更可能在我看来)你忘记了为DreamWeaver这样的应用程序设置了基于密码的sftp,它会自动login到你的虚拟主机,以保持其文件库最新。

这是一个真正的login。 并回答你的问题“你怎么突然使用密码login”,这是因为你只是没有禁用密码authentication。

如果您不需要对您的任何用户进行密码validation, 则应sshd_configPasswordAuthentication标志设置为no ,因为密码可以是键盘logging或bruteforced。

我个人这样做,如果在某个时刻我需要密码authentication,(例如,当我有一台计算机,但没有在我的处置钥匙的紧急情况下),我只需login我的VPS控制面板,并通过SSLVNC启用密码身份validation。

如果你有一些用户需要密码validation,你可以使用Match UserMatch Group

 PasswordAuthentication no Match User passwordauthuser PasswordAuthentication yes 

要么

 PasswordAuthentication no Match Group passwordauth PasswordAuthentication yes 

如果您真的需要密码validation,另一个选项是我过去所做的,nl创build一个非常长的用户名,这是接近于无法猜测的,以减less有人猜测用户的机会。

例如echo "mysupersecretuser" | sha256sum | sha256sum echo "mysupersecretuser" | sha256sum | sha256sum echo "mysupersecretuser" | sha256sum | sha256sum 。 这仍然倾向于键盘logging或剪贴板劫持。 但显然减less了有人猜测你的用户到nihillum的机会。

最后,如果你真的偏执,请检查服务器上所有允许的SSH密钥,更改所有公共服务的所有密码和用户。

不过,我相信Jeff Albert在说明这可能是某种服务的自动login时是正确的。 如果你不知道什么服务,你应该禁用login。

在违反应用程序的情况下,知道连接到服务器的是一个好习惯。 (内存可以很容易地读出,所以你可以存储密码)。

看起来你已经被黑客攻击,因为你使用了一个普通的用户名/密码组合对,比如myusername/mypassword

你应该

  1. 尽快更改您的密码/用户名到像mynEwp@$$_2011foobar
  2. 检查您的root密码了
  3. 查看shell历史logging/系统日志,并检查被黑客帐户执行了哪些命令
  4. sshd重新绑定到非默认端口,如41022

最后一个动作为您提供一定程度的保护,防止自动化的“蠕虫”和“僵尸”。 他们通常只尝试连接到默认端口。

PS:您也可以尝试完全禁用基于密码的身份validation。 特别是如果你不能获得物理访问你的服务器控制台的问题。