Linux의 zfs: 키를 어디에 설치해야 하는지 모르는 경우 암호화 풀을 가져오는 방법은 무엇입니까?

Linux의 zfs: 키를 어디에 설치해야 하는지 모르는 경우 암호화 풀을 가져오는 방법은 무엇입니까?

zfs livecd를 사용하고 있습니다. "password"라는 키 파일이 있는 암호화된 풀을 가져오고 싶습니다.

먼저 키 파일을 사용하여 USB 동글을 설치했습니다.

mkdir /tmpusb
mount /dev/disk/by-uuid/uuidofdongle... /tmpusb

그런 다음 풀을 가져옵니다.

zpool import -l -d /dev/disk/by-partlabel/ROOTPOOL1 -d /dev/disk/by-partlabel/ROOTPOOL2 -o altroot=/mnt rpool
1 / 1 keys successfully loaded

모든 것이 정상입니다! 문제가 무엇입니까?

동글을 설치할 올바른 디렉토리를 잊어버린 경우 어떻게 해야 합니까?

zfs가 정답을 줬는데 먼저 풀을 열어야 해요!

zfs get all rpool|grep -i kyloc
rpool  keylocation           file:///tmpusb/cifry  local

문제는 수영장이 폐쇄된 동안 이 숙소를 열어둘 수 있는 방법이 있습니까?

답변1

저는 10년 넘게 ZFS를 사용해 왔지만 ZFS 암호화를 사용한 적이 없습니다. 따라서 ZFS에 대해 전반적으로 많이 알고 있지만 ZFS 암호화에 대한 전문가는 아닙니다.

AFAIK, 풀을 가져오지 않으면 데이터 세트의 주요 위치 속성을 얻을 수 없습니다(풀이 아닌 데이터 세트의 속성이기 때문에 zdbZFS 디버깅 유틸리티를 사용하여 이 작업을 수행할 수 있는 방법이 있을 수 있지만 있는 경우 전혀 모른다).

그러나 풀을 가져온 후 데이터세트를 마운트하기 전에 이 속성을 재정의하고 키 파일의 위치를 ​​수동으로 알릴 수 있습니다 zfs.

-L문서를 읽어보니 이것이 바로 옵션 이라는 것을 확신합니다 zfs load-key. 에서 man zfs-load-key:

zfs load-key [-nr] [-L keylocation] -a|filesystem

파일 시스템의 키를 로드하여 해당 키 위치 속성을 상속하는 모든 하위 항목에 대한 액세스를 허용합니다.

키는 keyformat으로 지정된 형식과 keylocation 속성으로 지정된 위치여야 합니다. 키 위치를 프롬프트로 설정하면 터미널은 키 입력이 입력될 때까지 대화형으로 기다립니다.

키를 로드해도 데이터 세트가 자동으로 마운트되지 않습니다. 기능이 필요한 경우 zfs mount -l키를 요청하고 데이터 세트가 설치됩니다( zfs-mount(8) 참조).

키가 로드되면 keystatus 속성을 사용할 수 있게 됩니다.

-r지정된 파일 시스템 및 모든 하위 암호화 루트에 대한 키를 반복적으로 로드합니다.

-a풀의 모든 암호화 루트에 대해 가져온 키를 모두 로드합니다.

-n키를 로드하려면 연습 실행("작업 없음")을 수행합니다. 그러면 zfs는 제공된 키가 올바른지 확인하게 됩니다. 키가 이미 로드된 경우에도 이 명령을 실행할 수 있습니다.

-L keylocation- keylocation 속성 대신 keylocation을 사용합니다. 이는 데이터 세트의 속성 값을 변경하지 않습니다. 키 위치는 -r또는 와 함께 사용하는 경우에만 힌트로 제공될 수 있습니다 -a.

따라서 다음과 같이 시도해 보십시오.

  1. 키가 포함된 USB 키를 원하는 곳에 마운트하세요.
  2. keylocation로 속성을 재정의하려고 하므로 키를 로드하지 않고 풀을 가져옵니다 zfs load-key. 이 -l옵션이 없으면 원하는 대로 암호화된 데이터 세트가 설치되지 않습니다.
  3. 데이터 세트를 로드하는 키
  4. 데이터세트를 설치합니다.
zpool import rpool    # without the `-l` option!
zfs load-key -L /path/to/keyfile rpool
zfs mount rpool

참고: 호출되는 풀 rpool과 해당 풀의 최상위 데이터세트(라고도 함) rpool간의 차이점을 기억하세요. zpool하위 명령은 풀과 함께 사용되고 zfs하위 명령은 데이터세트, zvol, 스냅샷 등과 함께 사용됩니다.

관련 정보