# 포스트 양자 SSH 키를 위한 OpenSSH 10.6 CH-J Tools는 서버에서 **OpenSSH 10.6 이상**을 실행하는 경우에만 해당 서버에 포스트 양자 키 유형 `ssh-mldsa44-ed25519`를 추가할 수 있습니다. OpenSSH 10.6(2026년 10월 6일)은 이 키 유형의 표준화된 형식을 지원하는 첫 번째 릴리스입니다. 이전 릴리스에서는 이 형식을 거부합니다. Ubuntu 26.04의 10.2p1과 같은 일부 이전 릴리스는 CH-J Tools에서 사용하지 않는 실험적 `…@openssh.com` 변형만 인식합니다. 이 문서를 작성하는 시점에는 Ubuntu와 Debian이 `apt`를 통해 10.6을 제공하지 않습니다. 이 가이드에서는 공식 **OpenSSH 10.6p2**(2026년 11월 5일 릴리스, PAM 없이 빌드한 Linux 버전의 암호 인증 우회 취약점 수정)를 배포판 패키지와 함께 설치하고 `ssh` 서비스가 이를 사용하도록 설정합니다. 새로 설치한 Ubuntu 26.04.1 LTS에서 설치, `ssh-mldsa44-ed25519` 키를 사용한 로그인, 재부팅 및 롤백을 테스트했습니다. ## 시작하기 전에 - **이 빌드는 직접 유지 관리해야 합니다.** `apt upgrade`로는 이 빌드의 보안 수정 사항이 적용되지 않습니다. [OpenSSH 릴리스 노트](https://www.openssh.com/releasenotes.html)를 확인하고 최신 릴리스로 이 절차를 다시 수행하거나 롤백하세요. - 전체 절차를 진행하는 동안 **두 번째 SSH 세션을 열어 두세요**. 콘솔 접근 수단(하이퍼바이저, IPMI, 클라우드 콘솔)도 확보해 두는 것이 좋습니다. - 먼저 테스트 머신에서 시도하세요. - root 권한, systemd, `/var/tmp`의 약 1 GiB 여유 공간, `apt` 사용 및 OpenSSH 다운로드를 위한 인터넷 연결이 필요합니다. ## 스크립트가 수행하는 작업 1. `apt`로 빌드 의존성을 설치합니다. 2. `openssh-10.6p2.tar.gz`를 다운로드합니다. 사전에 고정된 SHA-256 해시와 OpenSSH 릴리스 키 `7168 B983 815A 5EEF 59A4 ADFD 2A3F 414E 7360 60BA`로 생성된 OpenPGP 서명을 검증합니다. 3. `/opt/openssh-10.6p2`에 빌드하여 설치합니다. `/etc/ssh`의 설정(호스트 키, `sshd_config`)과 PAM 설정은 변경되지 않습니다. 4. 새 버전으로 현재 `sshd_config`를 검사합니다. 이어서 `127.0.0.1:2226`에서 테스트 인스턴스를 시작하며, 두 검사에 모두 통과한 경우에만 서비스를 전환합니다. 5. systemd 드롭인 파일 `/etc/systemd/system/ssh.service.d/chj-openssh.conf`를 추가하고 `ssh.socket`을 비활성화합니다. 업스트림 sshd가 소켓 활성화를 지원하지 않기 때문입니다. 그런 다음 `ssh.service`를 다시 시작합니다. 6. 실행 중인 프로세스가 `/opt/openssh-10.6p2/sbin/sshd`이고 배너가 `SSH-2.0-OpenSSH_10.6`인지 확인합니다. 둘 중 하나라도 확인에 실패하면 자동으로 롤백합니다. ## 설치 ```bash curl -fsSLO https://tools.ch-j.de/files/tools/chj-openssh-10.6.sh echo "cdf3031a0b64db3e3bf3c83d31bd746aee5505757b1af5e137750326ed8d7a01 chj-openssh-10.6.sh" | sha256sum -c - less chj-openssh-10.6.sh # read it before running it as root sudo bash chj-openssh-10.6.sh install ``` 그런 다음 **새** SSH 연결을 여세요. 새 연결에서 로그인이 정상적으로 이루어지는 것을 확인한 후에만 기존 세션을 닫으세요. ## 확인 및 롤백 ```bash sudo bash chj-openssh-10.6.sh status # running binary, ssh.socket, banner sudo bash chj-openssh-10.6.sh rollback # back to the distribution sshd ``` 롤백하면 드롭인 파일을 제거하고, `ssh.socket`이 이전에 활성화되어 있었다면 다시 활성화한 뒤 배포판의 `sshd`를 다시 시작합니다. `/opt/openssh-10.6p2`의 빌드는 직접 삭제할 때까지 디스크에 남아 있습니다. 롤백 후에는 해당 서버에서 `ssh-mldsa44-ed25519` 키를 더 이상 사용할 수 없습니다. ## 이후 CH-J Tools에서 할 일 서버에 다시 연결하세요. 이제 **Users**에서 Keychain의 `ssh-mldsa44-ed25519` 키를 추가할 수 있습니다. 서버가 여전히 이전 버전을 보고하면 CH-J Tools는 "OpenSSH 10.6 or newer is required"라는 메시지를 표시하고 키를 추가하지 않습니다.