암호화 된 드라이브로 잠시 동안 실행중인 Debian Wheezy 서버가 있습니다. /dev/sda5
암호화 된 비밀번호 파일이 손상되면 암호화 된 드라이브의 비밀번호 ( )가 손실되었습니다.
이 서버를 재부팅하고 싶지만 물론 암호가 필요합니다. 드라이브가 암호 해독 된 상태이기 때문에 이전 암호를 몰라도 암호를 변경하는 방법이 있습니까?
cryptsetup luksChangeKey /dev/sda5
볼륨의 비밀번호가 필요합니다.
물론 rsync
모든 것을 해제하고 재 구축 할 수는 있지만 피하고 싶습니다. 나는 메모리 ( #cat /dev/mem | less
)를 보았지만 찾을 수 없었습니다 (매우 좋은 것입니다!).
답변
예, 볼륨이 해독 된 상태에서 마스터 키에 액세스하면됩니다.
새 암호 문구를 추가하는 빠르고 더러운 방법 :
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
대신 마스터 키를 사용하겠다고 알려줍니다.
는 <(...)
쉘 명령 치환 및 재이다. 기본적으로 내부의 모든 것을 실행하고 출력을 파이프로 보낸 다음 <(...)
해당 파이프의 경로로 대체합니다 .
따라서 전체 명령은 여러 작업을 압축하는 하나의 라이너입니다.