是否可以在没有原始 .der 文件的情况下使用 mokutil 删除已注册的密钥?

ade*_*lff 9 uefi secure-boot

在与我的独立显卡作斗争时,我重新安装了 Ubuntu 几次。前几次我非常小心地将我用来签署 dkms 内核模块的 .priv 和 .der 密钥移动到另一个分区。不幸的是,随着我越来越沮丧,我变得不那么小心了,显然不小心从备份中剪切和粘贴(而不是复制和粘贴),然后在下次重新安装时重新格式化唯一剩余的密钥。我曾经photorec尝试恢复文件,但不幸的是没有恢复 *.der 或 *.priv 文件。

似乎取消注册机器所有者密钥 (MOK) 的预期方法是

mokutil --delete keyname.der
Run Code Online (Sandbox Code Playgroud)

鉴于我不再拥有公钥,还有其他方法可以取消注册吗?

nod*_*ose 13

要从数据库中仅删除一个特定键,您可以先使用该--export标志,如下所示:

$ mokutil --export
Run Code Online (Sandbox Code Playgroud)

这会将所有机器所有者密钥导出到当前目录:

$ ls -1 MOK*
MOK-0001.der
MOK-0002.der
...
Run Code Online (Sandbox Code Playgroud)

它们根据以下给出的列表编号

$ mokutil --list-enrolled
[key 1]
SHA1 Fingerprint:....
...
[key 2]
SHA1 Fingerprint:....
Run Code Online (Sandbox Code Playgroud)

然后应该使您能够只删除一个特定的键,例如键 1:

# mokutil --delete MOK-0001.der
Run Code Online (Sandbox Code Playgroud)