
我想問是否可以將金鑰載入到我的即時持久性發行版中,以便在不禁用的情況下透過安全啟動?我想答案可能是否定的,但我還是想問。
答案1
您還沒有說出您想要金鑰的用途,但在 Ubuntu 上,我會定期執行此操作以手動簽署驅動程式。我的 BroadCom WiFi 驅動程式是第三方且未簽署的,每次安裝新核心時我都會使用以下腳本:-
#!/bin/bash
if [ "$(whoami)" != "root" ]
then echo "wlsign: must be called from 'root'"
elif [ -z "$1" -o "$1" == "-c" ]
then
[ "$1" == "-c" ] && \
openssl req -new -x509 -newkey rsa:2048 -keyout wl.priv -outform DER -out wl.der -nodes -days 36500 -subj "/CN=BroadCom/"
/usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./wl.priv ./wl.der $(modinfo -n wl)
[ "$1" == "-c" ] && mokutil --import wl.der
[ "$1" == "-c" ] && echo Now reboot and select MOK install || modprobe wl
else
[ "$1" != "-h" ] && echo "wlsign: invalid options - $@"
echo 'wlsign [-c|-h] : signs proprietary Wireless kernel drivers'
echo ' -c : create new keys (default: use existing)'
echo ' -h : give this help information'
fi
我-c
只需要一次該選項即可最初建立金鑰檔案。使用後-c
需要重新啟動系統並將新金鑰接受到 UEFI 韌體中。
我對其他未簽署的驅動程式有類似的腳本,尤其是 VMware 驅動程序,它們是動態編譯的,因此永遠無法簽署。
由於Kali和Ubuntu都是Debian的衍生品,我希望系統目錄結構相似。請注意,該sign-file
程式已安裝到核心標頭中,因此linux-headers-*
需要為您的核心安裝。kmodsign
中有一個程序/usr/bin/
,可能是替代方案,但我沒有嘗試過。
我不記得在哪裡找到此信息,因此無法確認其來源。