ใช่คุณสามารถทำได้โดยการเข้าถึงคีย์หลักในขณะที่มีการถอดรหัสระดับเสียง
วิธีที่รวดเร็วและสกปรกในการเพิ่มข้อความรหัสผ่านใหม่:
device=/dev/sda5
volume_name=foo
cryptsetup luksAddKey $device --master-key-file <(dmsetup table --showkeys $volume_name | awk '{ print $5 }' | xxd -r -p)
device
และvolume_name
ควรตั้งอย่างเหมาะสม เป็นชื่อของปริมาณการถอดรหัสหนึ่งที่คุณเห็นใน
volume_name
/dev/mapper
คำอธิบาย:
LUKS โวลุ่มทำการเข้ารหัสข้อมูลด้วยมาสเตอร์คีย์ แต่ละข้อความรหัสผ่านที่คุณเพิ่มจะเก็บสำเนาของรหัสหลักนี้ที่เข้ารหัสด้วยข้อความรหัสผ่านนั้นเท่านั้น ดังนั้นหากคุณมีคีย์หลักคุณเพียงแค่ต้องใช้มันในช่องเสียบคีย์ใหม่
ให้ฉีกคำสั่งดังกล่าวข้างต้น
$ dmsetup table --showkeys $volume_name
สิ่งนี้จะทิ้งข้อมูลจำนวนมากเกี่ยวกับปริมาณที่ถอดรหัสอย่างแข็งขัน ผลลัพธ์มีลักษณะดังนี้:
0 200704 crypt aes-xts-plain64 53bb7da1f26e2a032cc9e70d6162980440bd69bb31cb64d2a4012362eeaad0ac 0 7:2 4096
ฟิลด์ # 5 เป็นคีย์หลัก
$ dmsetup table --showkeys $volume_name | awk '{ print $5 }' | xxd -r -p
จะไม่แสดงผลลัพธ์ของสิ่งนี้เพราะมันเป็นข้อมูลไบนารี แต่สิ่งนี้จะจับคีย์หลักสำหรับปริมาณแล้วแปลงเป็นข้อมูลไบนารีดิบที่จำเป็นในภายหลัง
$ cryptsetup luksAddKey $device --master-key-file <(...)
นี่คือการบอก cryptsetup เพื่อเพิ่มคีย์ใหม่ให้กับโวลุ่ม โดยปกติการกระทำนี้ต้องการคีย์ที่มีอยู่อย่างไรก็ตามเราใช้--master-key-file
เพื่อบอกว่าเราต้องการใช้คีย์หลักแทน
การ<(...)
แทนที่ & เปลี่ยนเส้นทางคำสั่งของเชลล์คือ โดยทั่วไปแล้วมันจะดำเนินการทุกอย่างภายในส่งออกไปยังไพพ์แล้วแทนที่<(...)
ด้วยพา ธ ไปยังไพพ์นั้น
ดังนั้นคำสั่งทั้งหมดเป็นเพียงหนึ่งซับเพื่อย่อการดำเนินการหลายอย่าง