# OpenSSH 10.6 para chaves SSH pós-quânticas O CH-J Tools só pode adicionar uma chave do tipo pós-quântico `ssh-mldsa44-ed25519` a um servidor se esse servidor estiver a executar **OpenSSH 10.6 ou posterior**. O OpenSSH 10.6 (6 de outubro de 2026) é a primeira versão que suporta a forma normalizada deste tipo de chave. As versões anteriores rejeitam-na. Algumas delas, como a 10.2p1 no Ubuntu 26.04, apenas reconhecem uma variante experimental `…@openssh.com` que o CH-J Tools não utiliza. À data de redação deste guia, o Ubuntu e o Debian não disponibilizam a versão 10.6 através do `apt`. Este guia instala a versão oficial **OpenSSH 10.6p2** (5 de novembro de 2026, corrige uma vulnerabilidade que permite contornar a autenticação por palavra-passe em compilações para Linux sem PAM) em paralelo com o pacote da distribuição e configura o serviço `ssh` para a utilizar. Testado numa instalação limpa do Ubuntu 26.04.1 LTS: instalação, início de sessão com uma chave `ssh-mldsa44-ed25519`, reinício e reversão. ## Antes de começar - **A manutenção desta compilação fica a seu cargo.** O `apt upgrade` não fornecerá correções de segurança para esta compilação. Acompanhe as [notas de lançamento do OpenSSH](https://www.openssh.com/releasenotes.html) e repita o procedimento com uma versão mais recente, ou reverta as alterações. - Mantenha **uma segunda sessão SSH aberta** durante todo o procedimento. De preferência, garanta também acesso à consola (hipervisor, IPMI, consola da nuvem). - Experimente primeiro numa máquina de testes. - Precisa de privilégios de root, systemd, cerca de 1 GiB de espaço livre em `/var/tmp` e acesso à Internet para o `apt` e para descarregar o OpenSSH. ## O que faz o script 1. Instala as dependências de compilação com o `apt`. 2. Descarrega `openssh-10.6p2.tar.gz`. Verifica o valor SHA-256 previamente fixado e a assinatura OpenPGP feita com a chave de lançamento do OpenSSH `7168 B983 815A 5EEF 59A4 ADFD 2A3F 414E 7360 60BA`. 3. Compila e instala em `/opt/openssh-10.6p2`. A configuração em `/etc/ssh` (chaves do servidor, `sshd_config`) e a configuração PAM mantêm-se inalteradas. 4. Verifica o `sshd_config` atual com a nova versão. Em seguida, inicia uma instância de teste em `127.0.0.1:2226` e só efetua a mudança se ambas as verificações forem bem-sucedidas. 5. Adiciona o ficheiro de configuração complementar do systemd `/etc/systemd/system/ssh.service.d/chj-openssh.conf` e desativa o `ssh.socket`, porque o sshd do projeto original não suporta ativação por socket. Depois, reinicia o `ssh.service`. 6. Verifica se o processo em execução é `/opt/openssh-10.6p2/sbin/sshd` e se a mensagem de identificação é `SSH-2.0-OpenSSH_10.6`. Se alguma das verificações falhar, reverte as alterações automaticamente. ## Instalar ```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 ``` Depois, abra uma **nova** ligação SSH. Feche a sessão antiga apenas depois de confirmar que o novo início de sessão funciona. ## Verificar e reverter ```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 ``` A reversão remove o ficheiro de configuração complementar, volta a ativar o `ssh.socket` se este estava ativo anteriormente e reinicia o `sshd` da distribuição. A compilação em `/opt/openssh-10.6p2` permanece no disco até a eliminar. Após a reversão, as chaves `ssh-mldsa44-ed25519` deixam de funcionar nesse servidor. ## Depois, no CH-J Tools Volte a ligar-se ao servidor. Em **Users**, já pode adicionar uma chave `ssh-mldsa44-ed25519` a partir do Keychain. Se o servidor continuar a indicar uma versão anterior, o CH-J Tools apresenta a mensagem "OpenSSH 10.6 or newer is required" e não adiciona a chave.