initramfs에서 SSH 로그인을 통해 rootfs 잠금 해제
initramfs가 마운트 된 상태에서 ssh를 사용하여 부팅 시스템에 로그인하여 원격으로 부팅 할 때 rootfs의 잠금을 해제 할 수 있습니다.
설정
원격 잠금 해제가 작동하려면 initramfs를 빌드하기 전에 다음 패키지를 설치해야합니다. dropbear
busybox
파일 /etc/initramfs-tools/initramfs.conf
은 initramfs를 빌드 할 때 사용되는 구성 옵션을 보유합니다. 그것은 포함해야 BUSYBOX=y
다시 initramfs에 설치 비지 박스를 가지고합니다 (비지 박스 패키지가 설치 될 때이 기본으로 설정)을 포함 할 수 없습니다
DROPBEAR=n
다시 initramfs에 Dropbreak 내부의 설치를 해제 것이다. 로 설정하면 DROPBEAR=y
dropbear가 설치됩니다. 경우
DROPBEAR
전혀 설정되어 있지 않은 경우, Dropbreak 내부는 기존 cryptroot 설치의 경우 설치됩니다.
initramfs에 사용되는 호스트 키는 dropbear_dss_host_key
및
dropbear_rsa_host_key
에 있습니다 /etc/initramfs-tools/etc/dropbear/
. initramfs가 컴파일 될 때 존재하지 않으면 자동으로 생성됩니다. 다음은 수동으로 작성하는 명령입니다.
dropbearkey -t dss -f /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key
dropbearkey -t rsa -f /etc/initramfs-tools/etc/dropbear/dropbear_rsa_host_key
initramfs는 암호화되지 않으므로 공개 키 인증이 가정됩니다. 사용 된 키는에서 가져옵니다
/etc/initramfs-tools/root/.ssh/authorized_keys
. initramfs가 컴파일 될 때이 파일이 존재하지 않으면 파일이 생성되어
/etc/initramfs-tools/root/.ssh/id_rsa.pub
추가됩니다. 후자의 파일도 존재하지 않으면 파일이 자동으로 생성됩니다. 일치하는 개인 키는 나중에 initramfs에 로그인해야합니다 /etc/initramfs-tools/root/.ssh/id_rsa
(또는 id_rsa.dropbear
드롭 베어 형식으로 필요한 경우). 다음은 각 단계를 수동으로 수행하는 명령입니다.
키를 작성하려면 (dropbear 형식) :
dropbearkey -t rsa -f /etc/initramfs-tools/root/.ssh/id_rsa.dropbear
키를 dropbear 형식에서 openssh 형식으로 변환하려면
/usr/lib/dropbear/dropbearconvert dropbear openssh \
/etc/initramfs-tools/root/.ssh/id_rsa.dropbear \
/etc/initramfs-tools/root/.ssh/id_rsa
공개 키를 추출하려면 다음을 수행하십시오.
dropbearkey -y -f /etc/initramfs-tools/root/.ssh/id_rsa.dropbear | \
grep "^ssh-rsa " > /etc/initramfs-tools/root/.ssh/id_rsa.pub
authorized_keys 파일에 공개 키를 추가하려면 다음을 수행하십시오.
cat /etc/initramfs-tools/root/.ssh/id_rsa.pub >> /etc/initramfs-tools/root/.ssh/authorized_keys
경우 일부 인터페이스 설정, DHCP를 사용하여 구성 얻을 할
DEVICE=
에 /etc/initramfs-tools/initramfs.conf
충분합니다. initramfs는 또한 ip=
커널 매개 변수를 존중해야합니다 . grub을 사용하는 경우 아마 /boot/grub/menu.lst
' # kopt=
'줄에서 또는 특정 ' kernel
'줄에 추가하여 이를 설정할 수 있습니다 . ip=
커널 매개 변수에 설명되어 Documentation/nfsroot.txt
커널 소스 트리에.
이슈
update-initramfs
설정을 변경했을 때 실행하는 것을 잊지 마십시오 !
ssh 데몬에 대한 충분한 엔트로피를 수집하는 것이 때때로 문제인 것 같습니다. 엔트로피가 충분히 검색 될 때까지 ssh 데몬의 시작이 지연 될 수 있습니다. 이것은 시작 프로세스에 대한 차단이 아니므로 콘솔에있을 때 sshd가 시작을 완료 할 때까지 기다릴 필요가 없습니다.
잠금 해제 절차
원격에서 잠금을 해제하려면 다음과 같이 할 수 있습니다.
ssh -o "UserKnownHostsFile=~/.ssh/known_hosts.initramfs" \
-i "~/id_rsa.initramfs" root@initramfshost.example.com \
"echo -ne \"secret\" >/lib/cryptsetup/passfifo"
이 예에서는 cryptroot 시스템의 호스트 키를 보유 하는 추가 known_hosts
파일 " ~/.ssh/known_hosts.initramfs
", cryptroot 시스템의 ~/id_rsa.initramfs
인증 된 키를 보유하는 " " 파일 , cryptroot 시스템의 이름이 " initramfshost.example.com
", cryptroot 암호 문구는 " secret
"입니다
-< debian@x.ray.net
>, Wed, 2009 년 9 월 30 일
zless /usr/share/doc/cryptsetup/README.remote.gz