sudo를 통하지 않고 루트 sudo bash
로 실행 한 다음 작동 하는 것으로 나타났습니다 ecryptfs-recover-private
. 왜 다른지 잘 모르겠습니다.
편집하다:
TL; DR :
# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase - | ecryptfs-add-passphrase --fnek -
< Type your login password here >
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring
프롬프트가 표시되지 않으며 위의 명령에 로그인 암호 (맹인)를 입력해야합니다.
바꾸기 aaaaaaaaaaaaaaaa
및 bbbbbbbbbbbbbbbb
위해 상기 출력에서의 괄호 육각 서명을 이하 :
# mount -i -t ecryptfs -o ecryptfs_sig=aaaaaaaaaaaaaaaa,ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
예비
루트가 제대로 작동하지 않았기 때문에 실행하는 것으로 나타났습니다. 때때로 그것은, 때로는하지 않았다. 기본적으로 ecryptfs는 버그가 많고 사용자에게 친숙하지 않은 것으로 보이며, 종종 로그인 암호와 마운트 암호를 혼동합니다. 깊고 어두운 토끼 구멍을 뚫고 나면 도움이 될 몇 가지 팁이 있습니다. 이 노트는 우분투 17.10, ecryptfs-utils 111-0을위한 것이며 시작하기 전에 루트가되어야합니다. 홈 디렉토리를 /mnt/crypt
(이미 마운트되어 있어야 함) 에서 ( 으)로 마운트하고 싶다고 가정 하고 사용자 이름으로 /mnt/plain
바꿔야 user
합니다.
쉬운 시작
가장 먼저 시도해야 할 것은 :
# ecryptfs-recover-private /mnt/crypt/.ecryptfs/user/.Private
이것이 효과가 있다면 운이 좋다. 그렇지 않은 경우 mount
약 의 오류 메시지가 표시 될 수 있습니다 no such file or directory
. 이것은 매우 오해의 소지가 있습니다. 실제로 의미하는 것은 마운트 암호 문구가 잘못되었거나 누락 된 것입니다.
서명 받기
중요한 부분은 다음과 같습니다. ecryptfs가 실제로 올바른 마운트 암호를 시도하고 있는지 확인해야합니다. 암호문은 ecryptfs가 파일 시스템을 마운트하기 전에 Linux 커널에로드되어야합니다. ecryptfs는 서명으로 커널을 요청합니다. 서명은 16 바이트 16 진수 값이며 암호화에 민감하지 않습니다. ecryptfs에 필요한 암호 문구를 찾을 수 있습니다.
# cat /mnt/crypt/.ecryptfs/user/.ecryptfs/Private.sig
aaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbb
이것들을 기억하십시오. 목표는 이러한 서명이 커널에로드 된 암호를 얻은 다음 ecryptfs에이를 사용하도록 지시하는 것입니다. 첫 번째 서명 ( aaaaaaaaaaaaaaaa
)은 데이터에 대한 것이고 두 번째 서명 ( )은 bbbbbbbbbbbbbbbb
FNEK (FileName Encryption Key)입니다.
마운트 암호 구하기
이 명령은 사용자에게 로그인 암호 (오도 메시지가 표시됨)를 요청하고 마운트 암호를 출력합니다 .
# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase
이것을 복사하되 조심하십시오 !! 이는 암호 해독에 매우 민감하기 때문에 왕국의 열쇠입니다.
대화식 마운트 시도
다음으로 시도해야 할 것은 :
# mount -t ecryptfs /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
여기서 중요한 것은 방금 복사 한 ( mount
초 고감도) 마운트 암호 (로그인 암호가 아님) 가 필요 하다는 것입니다.
이것은 당신에게 몇 가지 질문을 할 것이고, 당신은 yes를 제외하고 기본값을 받아 들일 수 있습니다 Enable filename encryption
. 경고 메시지를 표시하고 서명을 캐시하도록 요청할 수 있습니다. 두 가지 모두에 '예'라고 말할 수는 있지만 올바른 마운트 암호가 있는지 다시 확인하십시오.
당신을 mount
위해 결정한 옵션이 표시됩니다 .
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=aaaaaaaaaaaaaaaa
Mounted eCryptfs
서명이 잘못된 경우 (에서 얻은 것과 일치하지 않음 Private.sig
) 마운트가 작동하지 않습니다.
...하지만 매우 도움이되지 않았다고보고 할 것입니다. 당신은 ls /mnt/plain
확인하고 파일을 고양이해야합니다. 이 시점에서 /var/log/syslog
ecryptfs가 동일한 서명을 찾고 있는지 확인할 수 있습니다 .
ecryptfs에는 두 가지 심각한 문제가 분명히 있으며, 우리는 그 문제를 해결해야합니다.
커널에 키를로드
대화식 마운트가 도움이되지 않으면 키를 커널에 직접로드하고 마운트 옵션에서 수동으로 키를 지정해야합니다.
# ecryptfs-add-passphrase --fnek
위에서 복사 한 ( 고감도) 마운트 암호를 붙여 넣습니다 . 출력해야합니다 :
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring
수동으로 장착
이제 암호문이 커널에로드되었으므로 mount에이를 사용하도록 지시하면됩니다.
# umount /mnt/plain
# mount -i -t ecryptfs -o ecryptfs_sig=aaaaaaaaaaaaaaaa,ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
옵션이 ecryptfs에 수동으로 알려주는 것을 제외하고는 대화식 마운트가 인쇄 한 것과 유사하다는 것을 알 수 있습니다.
잘만되면 이것이 작동합니다. 그렇지 않은 경우을 사용하여 키가 올바른 서명으로 커널에로드되었는지 확인할 수 있습니다 keyctl list @u
. 그러면 예상 한 두 개의 서명이 인쇄됩니다.
ecryptfs-recover-private
mount (2) 오류를 출력 할 때 해결 방법이 있습니다. 실행을 시도하고sudo ecryptfs-manager
4 (종료)를 누른 다음 원본을 다시 실행하십시오ecryptfs-recover-private
. 지금 작동