OpenSSH é um conjunto de aplicativos que permitem comunicações criptografadas em uma rede, usando o protocolo SSH.
Foi anunciado o lançamento da nova versão do OpenSSH 9.6 e esta versão inclui diversas correções de bugs e também inclui alguns novos recursos, diversas melhorias de desempenho e muito mais.
Para quem não conhece o OpenSSH (Open Secure Shell), trata-se de um conjunto de aplicativos que permite a comunicação criptografada em uma rede usando o protocolo SSH. Ele foi criado como uma alternativa gratuita e de código aberto ao software proprietário Secure Shell.
Principais novos recursos do OpenSSH 9.6
Esta nova versão do OpenSSH 9.6 apresenta um ProxyJump simplificado, que adiciona a substituição "%j" ao ssh, expandindo para o nome do host especificado, bem como uma detecção aprimorada de flags de compilador instáveis ou não suportadas, como " -fzero-call-used-regs " no clang.
Outra mudança na nova versão é a adição de suporte para configurar o ChannelTimeout no lado do cliente em SSH, que pode ser usado para encerrar canais inativos.
Além disso, o OpenSSH 9.6 introduz um controle granular dos algoritmos de assinatura, adicionando uma extensão de protocolo ao ssh e ao sshd para renegociar os algoritmos de assinatura digital para autenticação de chave pública após o recebimento do nome de usuário. Por exemplo, usando essa extensão, é possível utilizar algoritmos diferentes para usuários específicos.
Também foi observado que uma extensão de protocolo foi adicionada ao ssh-add e ao ssh-agent para configurar certificados ao carregar chaves PKCS#11, o que permite o uso de certificados associados a chaves privadas PKCS#11 em todos os utilitários OpenSSH que suportam ssh-agent, e não apenas no ssh.
Em relação às correções de bugs, é mencionado que estão incluídas as seguintes correções:
- Solução para o vulnerabilidade no protocolo SSH (CVE-2023-48795, ataque Terrapin), que permite que um ataque MITM reverta a conexão para usar algoritmos de autenticação menos seguros e desabilite a proteção contra ataques de canal lateral que recriam a entrada analisando atrasos entre as teclas digitadas no teclado. O método de ataque é descrito em uma notícia separada.
- Solução para o vulnerabilidade no utilitário ssh que permite a substituição de comandos shell arbitrários manipulando valores de login e host que contêm caracteres especiais. A vulnerabilidade pode ser explorada se um invasor controlar os valores de login e nome do host passados para ssh, as diretivas ProxyCommand e LocalCommand ou blocos “match exec” que contêm caracteres curinga como% u e% h. Por exemplo, o login e o host incorretos podem ser substituídos em sistemas que usam submódulos no Git, uma vez que o Git não proíbe a especificação de caracteres especiais em nomes de host e de usuário. Uma vulnerabilidade semelhante também aparece no libssh.
- Solução para erro no ssh-agent onde, ao adicionar chaves privadas PKCS#11, as restrições foram aplicadas somente à primeira chave retornada pelo token PKCS#11. O problema não afeta chaves privadas regulares, tokens FIDO ou chaves irrestritas.
Outras mudanças notáveis nesta nova versão incluem:
- PubkeyAcceptedAlgoritmos no bloco “Corresponder usuário”.
- Para limitar os privilégios do processo sshd, as versões do OpenSolaris que suportam a interface getpflags() usam o PRIV_XPOLICY em vez de PRIV_LIMIT.
- Adicionado suporte para leitura de chaves privadas ED25519 no formato PEM PKCS8 para ssh, sshd, ssh-add e ssh-keygen (anteriormente, apenas o formato OpenSSH era compatível).
Por fim, se tiver interesse em saber mais sobre esta nova versão, você pode encontrar os detalhes clicando neste link.
Como instalar o OpenSSH 9.6 no Linux?
Para aqueles interessados em instalar esta nova versão do OpenSSH em seus sistemas, por enquanto, podem fazê-lo baixando o código-fonte e compilando-o em seus computadores.
Isso ocorre porque a nova versão ainda não foi incluída nos repositórios das principais distribuições Linux. Para obter o código-fonte, você pode usar o seguinte link.
Após a conclusão do download, descompactaremos o pacote com o seguinte comando:
tar -xvf openssh-9.6.tar.gz
Entramos no diretório criado:
cd openssh-9.6
E podemos realizar a compilação com os seguintes comandos:
./configure --prefix=/opt --sysconfdir=/etc/ssh make make install