从 Raspberry Pi 4B 恢复丢失的密码

从 Raspberry Pi 4B 恢复丢失的密码

我有一个 RPi,但我忘记了它的密码。我的 PC 上的 ubuntu 命令行上有 ssh 登录历史记录,我希望有办法输入文本历史记录来尝试找到我的密码。如果没有,有没有办法恢复 RPi 密码?我正在运行 Ubuntu Server(不是 Raspbian),无法访问 GRUB。

之前我使用过该history命令,但它只显示 ssh 命令,而不显示输入的详细信息。

如能提供任何帮助我将非常感激!

编辑 - 有些解决方案不起作用,因为它们适用于 Raspberry Pi 3B 及以下版本,而我有一个 Raspberry Pi 4B

编辑 - 感谢我的一位朋友,我找到了解决方案,我将在下面给出答案。感谢所有帮助过我的人 :)

答案1

为了解决这个问题,我从 pi 中取出 SD 卡并在另一台 Linux 机器上打开它。

在终端中,我使用下面的命令从 root 用户行中删除“x”

sudo nano /mnt/sdcard/etc/passwd

(您可能需要安装 SD 卡或读取 SD 卡的 USB 记忆棒)

然后我就能够将 SD 卡放回 pi 并以 root 用户身份登录,而无需输入密码。

最后,我可以使用该命令创建一个新密码passwd

答案2

您可以使用以下方式展示其中的大部分内容:

cat .bash_history

要不就

history

但是,一旦缓冲区已满,只有部分数据会被写入。其余数据将会丢失。您至少可以用 2 种方法处理此问题。

  1. 编写一个 bash 脚本来保存它。例如,您可以将tee所有内容保存到 STDIN 和您选择的文件中。

  2. 编辑 ~/.bashrc——此文件中有一行设置了计数上限,另一行设置了文件大小上限。

至于登录凭据,则不行。否则,用户可能会看到彼此的密码。

我不确定凭证存储在哪里,但我几乎可以保证它们是加密的。

编辑这里

  1. 关闭电源并从 Pi 中拔出 SD 卡并将其放入计算机。
  2. 打开文件‘cmdline。...
  3. 将 SD 卡放回 Pi 并启动。
  4. 当提示出现时,输入“su”以 root 身份登录(无需密码)。
  5. 输入“passwd pi”然后按照提示输入新密码。

答案3

由于这个问题在较新版本的 Ubuntu 中似乎尚未解决:从 Pi 中取出 SD 卡并将其插入可以读取/写入 ext4 文件系统的计算机。安装第二个分区(例如/dev/sdb2)并编辑<mountpoint>/etc/shadow文件。

如果你需要输入密码,你可以使用

mkpasswd --method=SHA-512 --stdin

生成一个。删除旧的,添加新的。将卡放回 Pi。正常启动,mkpasswd现在应该设置您创建的密码。

相关内容