# OpenSSH 10.6 dla postkwantowych kluczy SSH 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 upgrade` nie dostarczy dla niej poprawek bezpieczeństwa. Śledź [informacje o wydaniach OpenSSH](https://www.openssh.com/releasenotes.html) 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/tmp` oraz dostępu do internetu na potrzeby `apt` i pobrania OpenSSH. ## Co robi skrypt 1. Instaluje zależności potrzebne do kompilacji za pomocą `apt`. 2. Pobiera `openssh-10.6p2.tar.gz`. Sprawdza ustaloną z góry sumę SHA-256 oraz podpis OpenPGP złożony kluczem wydań OpenSSH `7168 B983 815A 5EEF 59A4 ADFD 2A3F 414E 7360 60BA`. 3. Kompiluje i instaluje w `/opt/openssh-10.6p2`. Twoja konfiguracja w `/etc/ssh` (klucze hosta, `sshd_config`) oraz konfiguracja PAM pozostają bez zmian. 4. Sprawdza bieżący `sshd_config` za pomocą nowej wersji. Następnie uruchamia instancję testową pod adresem `127.0.0.1:2226` i przełącza usługę dopiero wtedy, gdy obie kontrole zakończą się pomyślnie. 5. Dodaje plik uzupełniający konfigurację systemd `/etc/systemd/system/ssh.service.d/chj-openssh.conf` i wyłącza `ssh.socket`, ponieważ sshd z projektu źródłowego nie obsługuje aktywacji przez gniazdo. Następnie ponownie uruchamia `ssh.service`. 6. 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 ```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 ``` 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 ```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 ``` 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.