我有一个运行在Windows虚拟机下的Linux服务器。 我用ssh和publickeylogin,并使用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
- 没有TPM的Bitlocker有用吗?
- select性的setuid root或以root身份运行应用程序? (Web服务器/ CGI上下文)
- Grsecurity的RBAC脚本策略
- Exchange是否受保护/允许有date的电子邮件?
- 找出strongswan ipsec使用哪种encryption和散列algorithm
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_config的PasswordAuthentication标志设置为no ,因为密码可以是键盘logging或bruteforced。
我个人这样做,如果在某个时刻我需要密码authentication,(例如,当我有一台计算机,但没有在我的处置钥匙的紧急情况下),我只需login我的VPS控制面板,并通过SSLVNC启用密码身份validation。
如果你有一些用户需要密码validation,你可以使用Match User或Match 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 。
你应该
mynEwp@$$_2011foobar sshd重新绑定到非默认端口,如41022 最后一个动作为您提供一定程度的保护,防止自动化的“蠕虫”和“僵尸”。 他们通常只尝试连接到默认端口。
PS:您也可以尝试完全禁用基于密码的身份validation。 特别是如果你不能获得物理访问你的服务器控制台的问题。