Mesin saya memiliki SSD, tempat saya menginstal sistem dan HDD, yang saya gunakan sebagai penyimpanan untuk file besar dan / atau jarang digunakan. Keduanya dienkripsi, tetapi saya memilih untuk menggunakan kata sandi yang sama untuk mereka. SSD terpasang di /
dan HDD di /usr/hdd
(masing-masing pengguna memiliki direktori di atasnya dan dapat terhubung sesuai keinginan dari direktori rumah).
Ketika sistem di-boot, ia segera meminta frasa sandi untuk SSD, dan hanya beberapa detik kemudian untuk yang untuk HDD (ini dipasang secara otomatis). Mengingat kedua frasa sandi itu sama, apakah ada cara untuk mengkonfigurasi sistem untuk bertanya sekali saja?
linux
disk-encryption
cryptsetup
doublep
sumber
sumber
expect
skrip atau sejenisnya yang dipanggil untuk memasang disk alih-alih meminta sistem melakukannya. Sebagai gantinya, sistem akan memanggil skrip yang akan meminta kata sandi, menyimpannya, dan menyediakannya untuk setiap operasi pemasangan./etc/crypttab
untuk membuka kunci drive kedua .Jawaban:
Distribusi berbasis Debian:
Debian dan Ubuntu mengirimkan skrip caching kata sandi decrypt_keyctl dengan paket cryptsetup .
skrip decrypt_keyctl memberikan kata sandi yang sama ke beberapa target LUKS terenkripsi, menyelamatkan Anda dari mengetiknya beberapa kali. Itu dapat diaktifkan di crypttab dengan
keyscript=decrypt_keyctl
opsi. Kata sandi yang sama digunakan untuk target yang memiliki pengidentifikasi yang sama di bidang keyfile . Kata sandi saat boot untuk setiap pengenal diminta satu kali.Contoh crypttab :
Setelah Anda memperbarui cryptab Anda, Anda juga harus memperbarui initramfs untuk menerapkan perubahan. Gunakan
update-initramfs -u
.Readme lengkap untuk decrypt_keyctl terletak di
/usr/share/doc/cryptsetup/README.keyctl
Sayangnya, ini saat ini tidak berfungsi pada sistem Debian menggunakan systemd init karena bug (sistem init lain seharusnya tidak terpengaruh). Halaman manual Debian crypttab menyarankan sebagai solusi untuk menggunakan
initramfs
opsi untuk memaksa pemrosesan pada tahap boot initramfs.Distribusi yang tidak menyediakan skrip decrypt_keyctl :
Jika decrypt_keyctrl tidak disediakan oleh distribusi Anda, perangkat dapat dibuka dengan menggunakan keyfile di sistem file root terenkripsi. Ini ketika sistem file root dapat dibuka dan dipasang sebelum perangkat terenkripsi lainnya.
LUKS mendukung banyak slot kunci. Ini memungkinkan Anda untuk membuka kunci perangkat secara alternatif menggunakan kata sandi jika file kunci tidak tersedia / hilang.
Hasilkan kunci dengan data acak dan atur izinnya agar hanya dapat dibaca oleh pemilik agar tidak bocor. Perhatikan bahwa file kunci harus di partisi root yang tidak dikunci terlebih dahulu.
Tambahkan kunci ke perangkat LUKS Anda
Konfigurasikan crypttab untuk menggunakan file kunci. Baris pertama harus menjadi perangkat root, karena perangkat tidak dikunci dalam urutan yang sama seperti yang tercantum dalam crypttab . Gunakan jalur absolut untuk file kunci.
sumber
crypttab
(saya tidak sentuhUUID=
diciptakan oleh sistem installer, saya kira itu seharusnya tidak masalah) dan entri mengakibatkan/var/log/syslog
. Kesalahan semacam itu bisa dimengerti, tapi saya tidak tahu apa yang harus dilakukan tentang mereka. File/lib/cryptsetup/scripts/decrypt_keyctl
ada, jadi saya tidak tahu mengapa ia mengeluh tentang opsi yang tidak diketahui. Saya juga tidak tahu apa yang harus ditentukan sebagai keyfile, saya tidak melihat penjelasan di mana pun ...update-initramfs -u -k $(uname -r) -v
itu harus keluarAdding binary /lib/cryptsetup/scripts/decrypt_keyctl
.lsinitramfs /boot/initrd.img-$(uname -r)
update-initramfs
katakan, saya melihat ini:E: /usr/share/initramfs-tools/hooks/cryptkeyctl failed with return 1.
. Setelah sedikit googling, saya menemukan bahwa saya mungkin perlukeyutils
paket (benar-benar tidak diinstal). Sekarangupdate-initramfs
berhasil danlsinitramfs
tidak disebutkandecrypt_keytls
. Akan diperbarui setelah boot berikutnya (kemungkinan besok).Ini adalah solusi untuk debian, mengingat bug yang dirujuk di atas oleh @sebasth.
Setup saya sedikit berbeda. Saya memiliki partisi root terenkripsi dan banyak raid disk. Bagi saya, saya harus menambahkan opsi initramfs ke crypttab:
Ini memberitahu pembaruan-initramfs bahwa saya ingin agar entri crypttab ini dipasang di initramfs. Saya memeriksa crypttab saya dengan menjalankan
Perhatikan bahwa disk raid saya adalah dm-crypt. Ini berarti bahwa saya tidak dapat menggunakan metode keyfile luks yang bekerja di sekitar bug keycript systemd. Untuk plain dm-crypt, saya harus menyimpan kata sandi dalam plaintext.
Disk terenkripsi harus dipasang sebelum
update-initramfs
dijalankan; jika tidak maka akan terjadi kesalahan. Saya harus mencari baris berikut ketika initramf saya dibuat:yang menunjukkan dua file berikut:
ditambahkan ke initramfs.
Akhirnya, saya harus menonaktifkan systemd menangani crypttab saya, untuk menangani bug yang dirujuk di atas: systemd tidak mendukung opsi keyscript di crypttab. Untuk ini, saya menambahkan opsi kernel
ke / etc / default / grub dan berlari
update-grub
. systemd sekarang mengabaikan crypttab, dan semua partisi terenkripsi dimuat di initramfs.Karena saya memiliki partisi root terenkripsi, cryptroot tampaknya tidak men-cache kunci saya. Ini berarti saya harus memasukkan kata sandi saya dua kali; satu untuk partisi root dan sekali untuk array raid saya.
sumber
Opsi lain adalah menggunakan
/lib/cryptsetup/scripts/decrypt_derived
skrip, yang juga merupakan bagian dari cryptsetup di Debian / Ubuntu.Alih-alih menyimpan kunci, Anda menggunakan kunci volume satu disk sebagai kata sandi tambahan untuk disk kedua. Ini membutuhkan penambahan kata sandi kedua ke disk terenkripsi kedua (dan ketiga, dll), tetapi LUKS mendukungnya. Oleh karena itu solusi ini juga berfungsi jika beberapa disk terenkripsi Anda tidak menggunakan kata sandi yang sama.
Contoh untuk menambahkan kunci dari sda6crypt ke sda5:
Tambahkan kunci volume sda6crypt sebagai kata sandi tambahan untuk sda5:
Konfigurasikan sda5crypt untuk dibuka secara otomatis di
/etc/crypttab
Ini menggunakan pipa bernama (
fifo
) untuk meneruskan kunci untuk menghindari keharusan menyimpan kunci volume dalam file sementara pada disk.The
keyscript
pilihan hanya bekerja jikacrypttab
diproses oleh alat cryptsetup asli Debian, yang implementasi ulang systemd saat ini tidak mendukung hal itu. Jika sistem Anda menggunakan systemd (yang merupakan sebagian besar sistem), Anda memerlukaninitramfs
opsi untuk memaksa pemrosesan terjadi di initrd oleh alat cryptsetup, sebelum systemd memulai.Berdasarkan /unix//a/32551/50793
sumber