CH-J Tools może dodać do serwera postkwantowy klucz typu ssh-mldsa44-ed25519 tylko wtedy, gdy na serwerze działa OpenSSH 10.6 lub nowszy. OpenSSH 10.6 (6 października 2026 r.) to pierwsze wydanie obsługujące ustandaryzowaną postać tego typu klucza. Starsze wydania ją odrzucają. Niektóre z nich, takie jak 10.2p1 w Ubuntu 26.04, rozpoznają tylko eksperymentalny wariant …@openssh.com, którego CH-J Tools nie używa.
W chwili pisania tego przewodnika Ubuntu i Debian nie udostępniają 10.6 przez apt. Ten przewodnik opisuje instalację oficjalnego wydania OpenSSH 10.6p2 (5 listopada 2026 r.; usuwa lukę pozwalającą obejść uwierzytelnianie hasłem w kompilacjach dla systemu Linux bez PAM) obok pakietu dystrybucji oraz skonfigurowanie usługi ssh tak, aby z niego korzystała.
Przetestowano na czystej instalacji Ubuntu 26.04.1 LTS: instalację, logowanie kluczem ssh-mldsa44-ed25519, ponowne uruchomienie systemu i wycofanie zmian.
Zanim zaczniesz
- Samodzielnie odpowiadasz za utrzymanie tej kompilacji.
apt upgradenie dostarczy dla niej poprawek bezpieczeństwa. Śledź informacje o wydaniach OpenSSH i powtórz procedurę z nowszym wydaniem albo wycofaj zmiany. - Przez cały czas trwania procedury utrzymuj otwartą drugą sesję SSH. Najlepiej zapewnij sobie także dostęp do konsoli (hipernadzorcy, IPMI, konsoli chmurowej).
- Najpierw wypróbuj procedurę na maszynie testowej.
- Potrzebujesz uprawnień root, systemd, około 1 GiB wolnego miejsca w
/var/tmporaz dostępu do internetu na potrzebyapti pobrania OpenSSH.
Co robi skrypt
- Instaluje zależności potrzebne do kompilacji za pomocą
apt. - Pobiera
openssh-10.6p2.tar.gz. Sprawdza ustaloną z góry sumę SHA-256 oraz podpis OpenPGP złożony kluczem wydań OpenSSH7168 B983 815A 5EEF 59A4 ADFD 2A3F 414E 7360 60BA. - Kompiluje i instaluje w
/opt/openssh-10.6p2. Twoja konfiguracja w/etc/ssh(klucze hosta,sshd_config) oraz konfiguracja PAM pozostają bez zmian. - Sprawdza bieżący
sshd_configza pomocą nowej wersji. Następnie uruchamia instancję testową pod adresem127.0.0.1:2226i przełącza usługę dopiero wtedy, gdy obie kontrole zakończą się pomyślnie. - Dodaje plik uzupełniający konfigurację systemd
/etc/systemd/system/ssh.service.d/chj-openssh.confi wyłączassh.socket, ponieważ sshd z projektu źródłowego nie obsługuje aktywacji przez gniazdo. Następnie ponownie uruchamiassh.service. - Sprawdza, czy uruchomiony proces to
/opt/openssh-10.6p2/sbin/sshd, a baner ma treśćSSH-2.0-OpenSSH_10.6. Jeśli którakolwiek z kontroli się nie powiedzie, automatycznie wycofuje zmiany.
Instalacja
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
Następnie otwórz nowe połączenie SSH. Zamknij starą sesję dopiero wtedy, gdy logowanie przez nowe połączenie zadziała.
Sprawdzanie i wycofywanie zmian
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
Wycofanie zmian usuwa plik uzupełniający konfigurację, ponownie włącza ssh.socket, jeśli był wcześniej włączony, i ponownie uruchamia sshd z dystrybucji. Kompilacja w /opt/openssh-10.6p2 pozostaje na dysku, dopóki jej nie usuniesz. Po wycofaniu zmian klucze ssh-mldsa44-ed25519 przestają działać na tym serwerze.
Następnie w CH-J Tools
Połącz się ponownie z serwerem. W sekcji Users możesz teraz dodać klucz ssh-mldsa44-ed25519 z Keychain. Jeśli serwer nadal zgłasza starszą wersję, CH-J Tools wyświetla komunikat „OpenSSH 10.6 or newer is required” i nie dodaje klucza.