我可以通过 SSH 访问 VPS 上的帐户。前段时间,我更改了密码,然后忘记了。但是我仍然可以通过 SSH 密钥登录。一段时间内这已经足够了,但现在我需要从另一台设备登录,所以是时候恢复我的密码了。如何在不知道旧密码的情况下更改密码(没有 root 访问权限)?
答案1
简而言之,如果不知道当前密码且没有 root/sudo 访问权限,您就无法更改密码。基本的 *NIX 安全模型不允许普通用户更改他们无权访问的帐户的密码。
如果您想在 passwd 和 shadow 文件上运行破解软件,那么执行您想要的操作将需要 root(sudo)访问权限或至少读取访问权限。
如果你可以通过 SSH 密钥访问你的帐户(不确定你的意思),那么你将可以访问你的帐户,因此,可能能够通过一些小技巧更改密码。例如,使用 .rhost 创建信任关系,允许具有相同用户名的人无需密码即可访问。不用说,这是一个危险的漏洞,不鼓励这样做。
据我所知,大多数发行版都要求用户在更改密码之前先知道当前密码。这又是已实施约 50 年的基本 *NIX 安全模型的一部分。
当然,这个故事的寓意是,如果有某种标准的用户名/密码管理计划,以便在忘记密码的情况下可以恢复。