我与我的同事进行了长时间的讨论,认为基于密钥的SSH身份验证(特别是对于OpenSSH)是否比使用密码的身份验证更安全。我的同事总是用密码连接到服务器,而我更喜欢登录到系统,而不必每次输入密码。
他们担心没有密码连接是不安全的。我该怎么跟他们说?对我来说,密码是坏的,因为它们可能是野蛮的-强制或捕获的键盘记录器。
我使用ssh-copy-id工具将我的公钥复制到服务器。然后,我只需与ssh servername连接。实际上,每次系统启动时,我只需输入一次私钥密码。如果我的工作站运行了3天,我就再也不用输入密码了,因为他们说密码是不安全的。这是真的吗?我知道钥匙更好,但我不知道怎么向他们解释。
发布于 2011-12-19 21:49:34
基于密钥的登录被认为比基于密码的登录安全得多,当从第三方系统获取访问权限的野蛮尝试时:破解密钥的机会实际上为零,而错误的密码太常见了。
从受损害的客户端系统(您的工作站)的角度来看,不会有什么不同,因为如果攻击者能够获取您的私钥和/或劫持会话,他们可能还会安装某种密钥记录器,从而使所感知的密码优势毫无用处。
发布于 2011-12-19 21:49:56
就像你的电脑一样安全。密钥位于RAM中,未加密;具有对您计算机的物理访问权限或远程根访问权限的攻击者可以获得该密钥。
用同样的方式来看待它,就好像你的同事使用了一个密码安全程序,并把它放在没有密码输入的数据库中的屏幕上;如果你在离开时锁定了工作站,并保持它不受敌对远程活动的影响,那么它是相当安全的,但是理论上,冻结的RAM攻击仍然可以获得密钥。
但是,正如您所指出的,处于这些位置的人也可以轻松地安装键盘记录器。只要您对工作站的安全性保持谨慎,我就不会认为它比密码更安全;但是基于密钥的登录的真正好处实际上是防止针对服务器的暴力密码攻击(因为密钥几乎不可能强制执行)。
发布于 2011-12-19 21:41:46
实际上你的同事是对的。想想这个..。你的工作站被破解了,它已经运行了几天,现在黑客攻击你的整个网络,因为你不使用ssh密码。
尽管如此,共享密码从来都不是好的,也是系统的一个主要弱点。我将假设您是在讨论根访问。
我要指出的是,它们都有缺点,而且安全性需要放在哪里。
对于我管理的所有服务器,我使用一个口令SSH密钥。这给了我最好的两个世界。一个只有我知道的密码,而不是对其他用户使用共享密码。
(是的,我见过一个没有密码的ssh密钥被用来破坏和整个网络。
https://security.stackexchange.com/questions/9870
复制相似问题