使用与用户登录密码相同的 ssh 密码是否安全?

使用与用户登录密码相同的 ssh 密码是否安全?

主(并且仅在我的情况下)ssh 密钥的密码与我日常使用的计算机的用户登录密码相同是否安全?假设我是该计算机的唯一用户。潜在的安全风险有哪些?

答案1

一般来说,重复使用密码是一个坏主意,除非您在同一领域中使用相同的密码,即在由同一组管理的计算机或服务之间,并且有权访问其中一台计算机/服务的人通常具有访问所有这些。

您在机器 A 上的帐户的密码在机器 A 上使用,并控制对机器 A 的访问。您在机器 A 上的 SSH 私钥的密码在机器 A 上使用,并控制对其他机器的访问。如果您在两台机器上使用相同的密码并且该密码被泄露,则这会危及机器 A 和其他机器的安全。因此共享密码不利于安全。

您在机器 A 上帐户的密码在机器 A 上使用,并控制对机器 A 的访问。您在机器 B 上的 SSH 私钥的密码在机器 B 上使用,并控制对机器 A 的访问。如果您在两台机器上使用相同的密码,那么它就可以从 A 或 B 泄露。因此共享密码不利于安全。

密码也可能通过备份泄露。例如,如果您的主目录的备份遭到破坏(或者您不小心将私钥文件上传到 Github - 您不会是第一个),攻击者就可以访问该密钥文件。OpenSSH私钥文件格式容易受到密码暴力攻击。从 OpenSSH 6.5 开始,有一种新的格式(用ssh-keygen -o它选择正确使用慢哈希,但从 OpenSSH 7.7 开始默认不使用它。因此,如果攻击者获得对您的密钥文件的访问权限,他们将面临获得密码的严重风险,从而使他们可以使用密钥并无需密钥即可登录。即使使用缓慢的哈希值,如果您的密码太弱,拥有密钥文件的攻击者也可能能够离线破解它(即仅受他们愿意花费多少电力的限制)。

由于这些原因,您不应为 SSH 密钥和用户帐户使用相同的密码。如果您想保护密钥文件,但又不想记住单独的密码,那么最好使用不易记住的密码,将其存储在您的钥匙圈中(这侏儒钥匙圈确实使用慢速哈希)。²

1我认为 Github 现在可以防止直接上传密钥文件。
²并且请记住不要泄漏密钥环的备份,但这在实践中比 SSH 问题要小,因为人们倾向于备份.ssh包含配置文件(如config和 )的目录authorized_keys

答案2

这个问题的答案实际上取决于您的计算环境。您是作为消费者(家庭)用户问这个问题还是作为企业用户(工作)问这个问题。如果您以后者的声音询问,那么我首先建议您咨询您的系统管理员和/或公司内部安全策略。总的来说,我想说(从 IA 从业者的角度来看……答案始终是否定的。我建议使用密码管理器并使用 veracrypt 等应用程序加密主列表。

答案3

一般来说,重复使用密码是一个糟糕且不安全的主意。

您需要考虑 SSH 密钥的用途,评估使用相同密码的风险与简单性。您用它加密敏感信息吗?访问远程测试服务器?生产服务器?那是只有你才能评估的事情。

拥有单独的密码意味着实施纵深防御:即使有人找到您的密码并访问您的计算机,他们仍然无法使用您的 SSH 密钥。

答案4

众所周知,不同的目的应该使用不同的密码。然而,在这种情况下,我想说风险很低,至少如果您的工作站上禁用了通过密码进行 ssh 登录,那么远程攻击者根本无法从知道您的密码中获得任何好处。

如果您已经有本地入侵者(知道您的密码),那么他可以轻松地设置一些东西来监视您,以便在您再次输入密码时获取您的密码。许多用户ssh-agent无论如何都在运行,因此入侵者可以使用它而根本不需要密码。因此,不同的密码在这里没有多大帮助,但也许仍然可以保护您免受“已知的非专家”攻击者的侵害,例如您的孩子、岳母等;)

更有趣的情况是,远程攻击者(病毒)在不知道任何密码的情况下设法在您的用户帐户上执行代码。他似乎更容易窥探你的密码。但如果他已经访问过系统,获取系统密码对他来说还重要吗?也许可以使用 sudo,当它像 Ubuntu 中一样默认设置时。

另一种情况是攻击者只能访问文件/etc/shadow和/或加密的 ssh 密钥(例如闯入备份服务器)。现在从理论上讲,密钥或影子文件对于猜测密码的暴力攻击可能不太安全。这对于攻击者来说是一个优势,但我认为这个优势很低。

相关内容