GNU/Linux >> Belajar Linux >  >> Linux

Linux – Menggunakan Spasi Sebelum Partisi Pertama Usb-stick Sebagai Kunci Luks?

Saya menggunakan arch linux dengan partisi root luks terenkripsi (boot tidak terenkripsi), dengan frasa sandi.
Sekarang saya memiliki file kunci (3072 byte), yang ditulis ke USB-Stick dengan cara ini:

sudo dd if=tempKeyFile.bin of=/dev/sdd bs=512 seek=1 count=6

dan juga ditetapkan sebagai pass tambahan

sudo cryptsetup luksAddKey /dev/sdb6 tempKeyFile.bin

Ketika saya membuka partisi secara manual dengan:

sudo cryptsetup --key-file tempKeyFile.bin open /dev/sdb6 luks_root

semuanya bekerja, partisi dipetakan dan dapat dipasang.
Sekarang kernel-parameter-line saya di grub.cfg terlihat seperti ini:

linux /vmlinuz-linux root=UUID=$UUID_OF_luks_root$ rw cryptdevice=UUID=$UUID_OF_sdb6$:luks_root cryptkey=/dev/sdd:1:6

Tetapi ketika boot, saya mendapatkan kesalahan ini:

No key available with this passphrase.
Invalid Keyfile. Reverting to passphrase.

Saya sudah mencoba offset 2 bukannya 1, tetapi hasil yang sama. Saya perhatikan itu tidak mengatakan, bahwa file kunci tidak dapat ditemukan/dibaca, tetapi salah.

Tampaknya ada sedikit dokumentasi tentang cara menyimpan luks keyfile ini. Arch-wiki menyebutkannya, tetapi sangat singkat dan sepertinya saya setuju, jadi saya pikir itu mungkin.

di mkinitcpio.conf saya MODUL, BINARY, dan FILES kosong dan saya menyetel:

HOOKS=(base udev autodetect keyboard modconf block encrypt filesystems fsck)

jadi blokir tepat sebelum enkripsi.

Apa masalahnya di sini?

Jawaban yang Diterima:

Dari kait enkripsi ArchLinux (/lib/initcpio/hooks/encrypt ):

*)
    # Read raw data from the block device
    # ckarg1 is numeric: ckarg1=offset, ckarg2=length
    dd if="$resolved" of="$ckeyfile" bs=1 skip="$ckarg1" count="$ckarg2" >/dev/null 2>&1
    ;;

Jadi meskipun mendukung membaca kunci dari perangkat blok mentah, ia menggunakan ukuran blok 1 (bukan default 512), jadi Anda harus mengalikan nilai Anda dengan 512 untuk membuatnya berfungsi.

Jadi, alih-alih cryptkey=/dev/sdd:1:6 coba cryptkey=/dev/sdd:512:3072 .


Linux
  1. Cara Mencadangkan atau Mengkloning Partisi Linux Menggunakan Perintah 'cat'

  2. Cara mengenkripsi partisi dengan DM-Crypt LUKS di Linux

  3. Periksa Ruang Disk di Linux Menggunakan Perintah df dan du

  1. Mengonfigurasi LUKS:Pengaturan Kunci Terpadu Linux

  2. Reboot Aman Linux Menggunakan Kunci SysRq Ajaib

  3. Linux / UNIX :Cara membuat partisi extended menggunakan fdisk

  1. Menentukan penggunaan disk di Linux menggunakan perintah "du"

  2. Cara Mengkloning partisi disk Linux melalui jaringan menggunakan dd

  3. 3 Cara Meningkatkan Ruang Swap di Linux