SSH-确定哪些用户仍使用密码登录


32

我有一台允许对SSH进行密码身份验证的Ubuntu Linux服务器,我想将其仅切换为SSH密钥并禁用密码登录。

在禁用密码登录之前,如何确定哪些用户仍在使用密码以及哪些用户已切换到密钥验证?


顺便说一句,虽然很多人不知道,但您也可以要求输入密钥服务器端密码。如果您这样做,则更麻烦一些,但当然也更安全...
deviantfan

34
禁用密码登录,恕不另行通知,看看有多少人尖叫。
马克·


@deviantfan仅需要更长的keyfile会更安全,但这将需要一些脚本。
jpaugh

1
@deviantfan我明白你的意思。但是,您假设专用密钥的密码不同于服务器的专用密码。(我知道,我假设私钥文件密码。)
jpaugh

Answers:


48

您不能100%可靠地做到这一点,但是有两个明显的迹象:

  • 首先,.ssh/authorized_keys文件的存在提示用户至少准备使用基于密钥的登录
  • 其次,在身份验证日志文件中(/var/log/secure在CentOS上,/var/log/auth.log在Debian / Ubuntu上),将记录auth方法:

    Sep 28 13:44:28 hostname sshd[12084]: Accepted publickey for sven
    

    Sep 28 13:47:36 hostname sshd[12698]: Accepted password for sven
    

    扫描日志以查找提及密码的条目,以了解谁仍在使用密码。除非您保留很长的日志,否则这很少会与很少登录的用户一起使用。


通过“扫描”日志文件,我想您的意思是明智的选择,例如使用grep?grep 'password' /var/log/ssh/sshd.log
djsmiley2k-CoW

8
@ djsmiley2k:是的,完全正确。或者您更喜欢该任务的其他任何方法。
斯文

第一种方法是否不受适当的安全实践(例如,700用户.ssh目录的权限以及已挂载的主目录上的root南瓜)的阻碍?
食人魔赞美诗

1
@ OgrePsalm33:您可以在NFS 服务器上执行此搜索...
Sven

1
@R ..:您可以使用NFSv4和Kerberos获得相当安全的NFS(在这种情况下,基于密钥的登录会变得很复杂)。除此之外:是的,将密钥~/.ssh设置为700root压缩的NFS主目录中时,基于密钥的登录无任何问题,因此,显然,至少必须切换用户ID才能读取基于密钥的auth authorized_keys
斯文

19

最快的方法是禁用它,看看谁在敲你的办公室门; p


6
这不是最快的方法,因为并非每个用户每天都可以登录,而日志可以清楚地显示某人登录的时间,因此他们可以即时得到结果
Ferrybig

3
这是最慢的方法。人们仅在其应用程序关闭时登录服务器。可能要花几年的时间。
纳文

@pete你是最高的:)
c4f4t0r
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.