2.7. SSH 및 소유권 문제 해결
RHEL for Edge 시스템을 이미지 모드 기반 시스템으로 전환할 때 ID 드리프트가 발생할 수 있습니다.
즉, 새 부팅 가능한 컨테이너의 사용자 ID(UID) 또는 그룹 ID(GID)가 원래 시스템의 ID와 일치하지 않습니다. 이는 /var 디렉터리의 SSH 액세스 및 파일 소유권에 영향을 미칩니다.
이미지 모드 시스템에서 시스템은 altfiles 를 사용하여 /usr/lib/passwd 의 사용자 및 /usr/lib/ 그룹의 사용자를 관리합니다. 이러한 파일의 ID가 기존 시스템과 다른 경우 서비스가 실패하거나 파일에 액세스할 수 없게 될 수 있습니다.
사전 요구 사항
-
기존 RHEL for Edge
rpm-ostree 기반시스템입니다. - 서브스크립션된 RHEL 9 시스템. 자세한 내용은 RHEL 시스템 등록 시작하기 설명서를 참조하십시오.
- 컨테이너 레지스트리. 로컬로 레지스트리를 생성하거나 Quay.io 서비스에 무료 계정을 생성할 수 있습니다. Red Hat Quay.io 페이지를 참조하십시오.
- 프로덕션 또는 개발자 서브스크립션이 있는 Red Hat 계정. Red Hat Enterprise Linux 개요 페이지에서 무료로 개발자 서브스크립션을 사용할 수 있습니다.
-
registry.redhat.io에 대한 인증 자세한 내용은 Red Hat Container Registry Authentication 을 참조하십시오.
bootc 스위치 작업 후 SSH를 사용하여 로그인할 수 없는 경우 ssh_keys 그룹 ID가 변경되었습니다. 예를 들어 ID가 101에서 999로 변경되는 경우 에지 시스템에 연결할 수 없게 될 수 있습니다.
프로세스
SSH의 GID 불일치를 확인합니다.
장치에서
ssh_keys그룹의 현재 ID를 확인합니다.$ getent group ssh_keys현재 ID를 인증된 키의 소유자와 비교합니다.
$ ls -ln /home/admin/.ssh/authorized_keysls출력의 숫자 GID가getent출력과 일치하지 않으면 SSH 인증이 실패합니다./var의 영구 권한 문제를 해결합니다./var디렉터리는 업데이트 시 영구적입니다. Containerfile에서 이전 운영 체제와 다른 UID를 사용하는 경우/var의 파일은 고립된 ID에 의해 소유됩니다.
알 수 없는 숫자 ID가 소유한 파일을 식별합니다.
$ find /var -nouser -o -nogroup이전 단계에서 파일이 표시되면 다음 방법 중 하나를 사용하여 드리프트를 확인합니다.
-
Containerfile을 업데이트합니다. 기존 RHEL for Edge 시스템에서 그룹 및 사용자 정보를 추출하고 Containerfile의 일부로 ID를 수정합니다. ID 패리티를 보장하기 위해 로컬
lib/group파일을 컨테이너 이미지에 복사하도록 Containerfile을 구성합니다. 호스트에서 수동으로 권한을 수정합니다.
$ sudo chown -R admin:admin /var/lib/<application>
-
Containerfile을 업데이트합니다. 기존 RHEL for Edge 시스템에서 그룹 및 사용자 정보를 추출하고 Containerfile의 일부로 ID를 수정합니다. ID 패리티를 보장하기 위해 로컬
2.7.1. RHEL 9.6 원시 이미지 배포를 이미지 모드로 변환 링크 복사링크가 클립보드에 복사되었습니다!
RHEL의 원시 이미지를 이미지 모드로 변환할 때 현재 운영 체제를 부팅 가능한 컨테이너 이미지로 리베이스할 수 있습니다. 그런 다음 bootc 업데이트 워크플로우를 사용하여 향후 라이프사이클 관리에 사용할 수 있습니다.
사전 요구 사항
-
기존 9.6 RHEL for Edge가
원시이미지와 함께 설치되어 있습니다.
프로세스
- 이미지를 업데이트합니다. RHEL for Edge 이미지 업데이트를 참조하십시오.
기존 이미지를 RHEL 이미지 빌더에서 이미지 모드로 전환합니다.
rhel-bootc에서 이미지를 빌드합니다. 예를 들면 다음과 같습니다.$ cat Containerfile FROM registry.redhat.io/rhel9/rhel-bootc:latest RUN dnf install -y \ clevis \ clevis-dracut \ clevis-luks \ fdo-client \ fdo-owner-cli
현재 디렉터리에서
Containerfile을 사용하여 <image> 이미지를 빌드합니다.$ podman build -t quay.io/<namespace>/<image>:<tag> .이미지를 레지스트리로 푸시합니다.
$ podman push quay.io/<namespace>/<image>:_<tag>_장치에서
bootc 스위치를 실행합니다.$ bootc switch quay.io/<namespace>/<image>:_<tag>_systemctl reboot를 실행합니다.$ sudo systemctl reboot
검증
RHEL for Edge 시스템에 연결하고
bootc 상태를실행합니다.# bootc status