我总是使用 ssh 密钥登录服务器,所以我不确定我的实际密码是什么。我需要猜测几次。但是服务器有fail2ban,我不想触发它。有什么方法可以检查我的哪个密码对应于服务器接受的 ssh 密钥?
无论如何,我可以在使用 ssh-key 登录后检查我的密码而不触发fail2ban吗?
答案1
不,帐户密码和 ssh 密钥之间没有任何关系。
即使没有密码,您也可以使用密钥通过 ssh 登录帐户。
对于更新的问题,是的,请输入:
su YOURUSERNAME
如果您还记得密码,请尝试
答案2
SSH 密钥完全独立于密码。知道密钥并不能帮助找到密码。
如果您是服务器的 root 用户,则可以获得密码哈希值。/etc/shadow
如果它是本地帐户,则它位于其中,或者可以从网络数据库(例如 LDAP)检索它。在 Linux 上,尝试sudo getent shadow $USER
.获得密码哈希后,您可以离线尝试。如果您只有几个候选密码,则可以使用这一行,其中$6$stuff$more.stuff
第二个:
分隔字段是/etc/shadow
:
perl -l -pe '$_ = crypt $_, q:$6$stuff$more.stuff:'
如果您需要更强力的暴力破解,请查找用于引导密码攻击的软件。我还不够熟悉,无法提出建议。
当然,如果您是服务器的root用户,您也可以更改密码。