따르다예YubiKey에서 FIDO2 키를 어떻게 추가하지만 YubiKey를 사용하여 명령줄에서 잠금을 해제하는 방법을 모르겠습니다. 지침에는 시작 시 잠금 해제에 대한 내용이 나와 있지만 이는 제가 원하는 것이 아닙니다.
설정
128MiB 파일을 생성하여 블록 장치로 만들고 loop0
LUKS를 설정합니다.
$ dd if=/dev/urandom of=disk.bin bs=1M count=128
128+0 records in
128+0 records out
134217728 bytes (134 MB, 128 MiB) copied, 0.534038 s, 251 MB/s
$ losetup /dev/loop0 disk.bin
$ cryptsetup luksFormat -y /dev/loop0
WARNING!
========
This will overwrite data on /dev/loop0 irrevocably.
Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for temp.bin:
Verify passphrase:
Yubikey를 추가했습니다.
$ systemd-cryptenroll /dev/loop0 --fido2-device=auto --fido2-with-client-pin=yes
답변1
PIN을 요구하도록 FIDO2 보안 토큰을 구성하면 둘 다 키보드를 통해 호스트에 입력되기 때문에 일반 LUKS 암호 문구 항목과 충돌합니다. 이 옵션은 --token-only
비밀번호 대신 PIN이 입력되어 보안 토큰(여기서는 단일로 가정)에 전달됨을 나타내는 데 사용됩니다.
sudo cryptsetup open --token-only /dev/loop0 loop0_encrypted
--token-only
외부 디스크/USB 스틱 등을 연결할 때와 같이 수동 FIDO2+PIN 사용의 경우 사용이 매우 간단합니다. cryptsetup
암호 슬롯이 없을 때 PIN 입력으로 자동 전환하는 것은 합리적인 유용성 개선처럼 들립니다. (해야할 일: 기본 동작이 변경되면 답변을 업데이트하세요.)
테스트 사용비밀번호 설정 v2.6.1(태그됨 2023-02-09) Debian 12(Bookworm), Ubuntu 23.04(Lunar Lobster), Fedora F38 등에 적용 가능
상류에서cryptsetup open
문서. (강조합니다.)
유효한 LUKS2 토큰이 존재하지만PIN 필요지정된 키홈을 잠금 해제하려면 다음을 수행하십시오.다음을 제외하고는 사용되지 않습니다.다음 옵션 중 하나를 추가합니다.
--token-only
, 필수 PIN 보호 토큰 또는 일치하는 PIN 보호 토큰 과 일치--token-type
합니다 .type
--token-id
id
데비안 12 매뉴얼 페이지. (강조합니다.)
--token-only
토큰 기반 키홈 잠금 해제에 실패하면 진행하지 마세요. 이 옵션이 없으면 작업을 계속 진행하려면 암호가 필요합니다.이를 통해 LUKS2 토큰을 다음으로 보호할 수 있습니다.PIN은 대화형 키웨이 비밀번호 프롬프트보다 우선합니다..
답변2
설정 암호화를 사용하면 잠금을 해제하려면 systemd-cryptenroll
집과 같은 도구가 필요하다는 것을 암시합니다 .systemd
본질적으로 예제 3인 것으로 밝혀졌습니다.시스템 버전별 crypttab(5)
매뉴얼 페이지.
sudo /usr/lib/systemd/systemd-cryptsetup attach loop0_encrypted /dev/loop0 - fido2-device=auto
동등한 /etc/crypttab
항목은 다음과 같습니다.
loop0_encrypted /dev/loop0 - fido2-device=auto
예를 들어 Debian 12에서는 crypttab(5)
매뉴얼 페이지에 다음과 같이 나와 있습니다.
다양한 CRYPTTAB 형식 정보
고유한 형식을 가진 여러 가지 독립적인 cryptsetup 래퍼가 있습니다
crypttab
. 이 맨페이지는 Debianinitramfs
스크립트와SysVinit
init 스크립트 의 구현을 다룹니다 .systemd
자체 crypttab 구현을 가져왔습니다. 우리는 이 매뉴얼 페이지에서 systemd와 구현 간의 차이점을 다루려고 노력했지만 의심스러운 경우 온라인으로 systemd crypttab(5) 매뉴얼 페이지를 확인하는 것이 가장 좋습니다.https://www.freedesktop.org/software/systemd/man/crypttab.html.