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 и повторяйте процедуру с более новой версией либо выполняйте откат. - Держите второй сеанс SSH открытым в течение всей процедуры. Ещё лучше иметь доступ к консоли (гипервизор, IPMI, облачная консоль).
- Сначала проверьте процедуру на тестовой машине.
- Нужны права root, systemd, около 1 GiB свободного места в
/var/tmpи доступ к интернету дляaptи скачивания OpenSSH.
Что делает скрипт
- Устанавливает зависимости для сборки через
apt. - Скачивает
openssh-10.6p2.tar.gz. Проверяет закреплённую контрольную сумму SHA-256 и подпись OpenPGP, созданную ключом выпусков OpenSSH7168 B983 815A 5EEF 59A4 ADFD 2A3F 414E 7360 60BA. - Собирает и устанавливает в
/opt/openssh-10.6p2. Конфигурация в/etc/ssh(ключи хоста,sshd_config) и конфигурация PAM остаются без изменений. - Проверяет текущий
sshd_configновой версией. Затем запускает тестовый экземпляр на127.0.0.1:2226и ничего не переключает, пока обе проверки не завершатся успешно. - Добавляет файл переопределения systemd
/etc/systemd/system/ssh.service.d/chj-openssh.confи отключаетssh.socket, поскольку исходный sshd не поддерживает активацию через сокет. Затем перезапускаетssh.service. - Проверяет, что запущенный процесс —
/opt/openssh-10.6p2/sbin/sshd, а баннер содержитSSH-2.0-OpenSSH_10.6. Если какая-либо проверка не проходит, автоматически выполняет откат.
Установка
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. Закройте старый сеанс только после успешного входа через новое соединение.
Проверка и откат
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" и не добавляет ключ.