# OpenSSH 10.6 для постквантовых ключей SSH CH-J Tools может добавить на сервер постквантовый ключ типа `ssh-mldsa44-ed25519`, только если на сервере установлен **OpenSSH 10.6 или новее**. OpenSSH 10.6 (6 октября 2026 г.) — первый выпуск со стандартизированной формой этого типа ключей. Более ранние выпуски её отвергают. Некоторые из них, например 10.2p1 в Ubuntu 26.04, поддерживают только экспериментальный вариант `…@openssh.com`, который CH-J Tools не использует. На момент написания Ubuntu и Debian не предоставляют 10.6 через `apt`. Это руководство описывает установку официального **OpenSSH 10.6p2** (5 ноября 2026 г.; исправляет обход аутентификации по паролю в сборках для Linux без PAM) параллельно с пакетом дистрибутива и переключение службы `ssh` на эту версию. Проверено на чистой Ubuntu 26.04.1 LTS: установка, вход с ключом `ssh-mldsa44-ed25519`, перезагрузка и откат. ## Перед началом - **Вы самостоятельно сопровождаете эту сборку.** `apt upgrade` не будет устанавливать для неё исправления безопасности. Следите за [примечаниями к выпускам OpenSSH](https://www.openssh.com/releasenotes.html) и повторяйте процедуру с более новой версией либо выполняйте откат. - Держите **второй сеанс SSH открытым** в течение всей процедуры. Ещё лучше иметь доступ к консоли (гипервизор, IPMI, облачная консоль). - Сначала проверьте процедуру на тестовой машине. - Нужны права root, systemd, около 1 GiB свободного места в `/var/tmp` и доступ к интернету для `apt` и скачивания OpenSSH. ## Что делает скрипт 1. Устанавливает зависимости для сборки через `apt`. 2. Скачивает `openssh-10.6p2.tar.gz`. Проверяет закреплённую контрольную сумму SHA-256 и подпись OpenPGP, созданную ключом выпусков OpenSSH `7168 B983 815A 5EEF 59A4 ADFD 2A3F 414E 7360 60BA`. 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** теперь можно добавить ключ `ssh-mldsa44-ed25519` из Keychain. Если сервер по-прежнему сообщает более раннюю версию, CH-J Tools выводит сообщение "OpenSSH 10.6 or newer is required" и не добавляет ключ.