当我登录时,它挂起直到 crng init 完成

wb9*_*688 28 debian systemd lightdm

当我在运行 Debian Unstable 的笔记本电脑上使用 LightDM 登录时,它最近开始挂起大约 2 分钟,直到journalctl显示消息kernel: random: crng init done。当我在键盘挂起时按随机键时,它会更快地登录(大约 10 秒)。在我没有这个问题之前,有什么办法可以解决它吗?

编辑:使用linux-image-4.15.0-3-amd64代替linux-image-4.16.0-1-amd64作品,但我不想使用旧内核。

int*_*lfx 16

由于可用的熵(随机性)不足,您的系统的某些组件在尝试从内核获取随机数据(即读取/dev/urandom或调用getrandom())时会阻塞。

我没有现成的解释为什么问题取决于特定的内核版本,或者你系统上的哪个组件实际上阻塞了,但不管根本原因,

事实上,正如 Bigon 在他的回答中指出的那样,它似乎是 4.16 中引入的内核错误:

此错误是由此提交中的“crng_init > 0”到“crng_init > 1”更改引入的:https ://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/ ?id=43838a23a05fbd13e47d750d3dfd77001536dd33

此更改无意中影响了 urandom_read,导致 crng_init==1 状态被视为未初始化并导致 urandom 阻塞,尽管此状态专门用于在启动时支持非加密需求:https : //git.kernel.org/pub /scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c#n1863

恢复 43838a23a05f(“随机:修复 crng_ready() 测试”)修复了错误(用 4.16.5-1 测试),但这可能会导致安全问题(CVE-2018-1108 在 43838a23a05f 中提到)。我正在测试一个更本地化的修复程序,它应该更适合上游。

( https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897572#82 )

...不过,您可以尝试使用havegedrng-tools更快地收集熵。

  • 看起来在 [Linux 4.16.4](https://cdn.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.4) 中,由于 CVE-2018,一些与 CRNG 相关的事情发生了变化-1108。`rng-tools` 在我的笔记本电脑上不起作用,因为英特尔赛扬 N2840 不支持 AES-NI,因此没有内置 TRNG。 (4认同)
  • 从 2011 年开始在 debian 中最后一次上传 `rng-tools`。你有最近引入的 `rng-tools5` 包 (3认同)

Big*_*gon 7

这是内核中的更改(错误?),请参阅:https ://bugs.debian.org/cgi-bin/bugreport.cgi?bug =897572

减轻安装rng-tools5似乎有帮助。请注意,我不知道安装此软件包是否对强加密密钥生成有影响

编辑:显然更新 util-linux 2.32 应该可以解决这个问题


小智 6

这是一个内核错误,可能会发生在不同的内核上。

运行apt-get install rng-tools作为su终端应该工作。


Ser*_*ndt 5

删除交换分区后也可能发生

kernel: random: crng init done删除交换分区后也可能发生挂起。

如果删除了交换分区,则配置文件/etc/initramfs-tools/conf.d/resume 应该完全为空或 read RESUME=。删除任何 UUID 号。RESUME=NONE无效。

$ sudo vim /etc/initramfs-tools/conf.d/resume
Run Code Online (Sandbox Code Playgroud)

初始 RAM 文件系统需要更新才能使这些更改生效:

$ sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)