Faz pouco foi anunciado o lançamento da nova versão do OpenSSH 9.0, uma implementação aberta de cliente e servidor para trabalhar com os protocolos SSH 2.0 e SFTP.
Para quem não conhece OpenSSH (Open Secure Shell) deve saber que este é um conjunto de aplicativos que permitem comunicações criptografadas através de uma rede, usando o protocolo SSH. Ele foi criado como uma alternativa livre e aberta ao programa Secure Shell, que é um software proprietário.
O pacote OpenSSH inclui os seguintes utilitários de linha de comando e daemons:
- scp: que é um substituto do rcp.
- sftp - Um substituto para ftp para copiar arquivos entre computadores.
- ssh - Um substituto para rlogin, rsh e telnet para permitir acesso shell a uma máquina remota.
- ssh-add e ssh-agent: um conjunto de utilitários para facilitar a autenticação, mantendo as chaves prontas e evitando a necessidade de inserir frases-senha cada vez que são usadas.
- ssh-keygen - Uma ferramenta para inspecionar e gerar RSA, DSA e chaves de curvas elípticas usadas para autenticação de usuário e host.
- ssh-keyscan: que verifica uma lista de hosts e coleta suas chaves públicas.
- sshd: o daemon do servidor SSH.
Principais novos recursos do OpenSSH 9.0
Na nova versão, o utilitário scp movido por padrão para usar SFTP em vez do protocolo SCP/RCP legado.
O SFTP usa métodos de manipulação de nomes mais previsíveis e não usa processamento de shell de padrões glob em nomes de arquivos no outro lado do host, o que cria problemas de segurança. Em particular, ao usar SCP e RCP, o servidor decide quais arquivos e diretórios enviar ao cliente, e o cliente verifica apenas a correção dos nomes de objetos retornados, o que, na ausência de verificações adequadas pelo cliente, permite que o servidor passe outros nomes de arquivos diferentes dos solicitados.
O protocolo O SFTP não tem esses problemas, mas não suporta expansão de rota especial. como "~/". Para resolver essa diferença, a partir do OpenSSH 8.7, a implementação do servidor SFTP suporta a extensão de protocolo "expand-path@openssh.com" para expandir os caminhos ~/ e ~user/.
Ao usar o SFTP, os usuários também podem encontrar incompatibilidades causado pela necessidade de duplicar os caracteres de expansão do caminho de escape em solicitações SCP e RCP para evitar que sejam interpretados no lado remoto.
No SFTP, esse escape não é necessário e as aspas extras podem causar um erro de transferência de dados. Ao mesmo tempo, os desenvolvedores do OpenSSH se recusaram a adicionar uma extensão para repetir o comportamento do scp neste caso, já que o escape duplo é visto como uma falha que não faz sentido repetir.
Outras mudanças que se destacam nesta nova versão do OpenSSH 9.0 é que ssh e sshd têm um algoritmo de troca de chave híbrida "sntrup761x25519-sha512@openssh.com" (ECDH/x25519 + NTRU Prime) habilitado por padrão, resistente à força bruta em computadores quânticos e combinado com ECDH/x25519 para bloquear possíveis problemas no NTRU Prime que possam surgir no futuro. Na lista KexAlgorithms, que determina a ordem em que os métodos de troca de chaves são escolhidos, o algoritmo mencionado agora ocupa o primeiro lugar e tem precedência sobre os algoritmos ECDH e DH.
Por outro lado, destaca-se também que os computadores quânticos ainda não atingiram o nível de descriptografia de chave tradicional, mas o uso de proteção híbrida ele protegerá os usuários de ataques relacionados ao armazenamento de sessões SSH interceptadas na expectativa de que possam ser descriptografadas no futuro, quando os computadores quânticos necessários estiverem disponíveis.
A extensão "copy-data" foi adicionado ao sftp-server, que permite copiar dados no lado do servidor, sem transferi-los para o cliente, se os arquivos de origem e destino estiverem no mesmo servidor.
Além disso, o comando "cp" foi adicionado ao utilitário sftp para forçar o cliente a copiar arquivos no lado do servidor.
Finalmente se você estiver interessado em saber mais sobre isso sobre esta nova versão, você pode verificar os detalhes indo para o seguinte link.
Como instalar o OpenSSH 9 no Linux?
Para aqueles que estão interessados em poder instalar esta nova versão do OpenSSH em seus sistemas, por enquanto eles podem fazer isso baixando o código-fonte deste e realizando a compilação em seus computadores.
Isso ocorre porque a nova versão ainda não foi incluída nos repositórios das principais distribuições do Linux. Para obter o código-fonte, você pode fazer a partir do seguinte link.
Feito o download, agora vamos descompactar o pacote com o seguinte comando:
tar -xvf openssh-9.0.tar.gz
Entramos no diretório criado:
cd openssh-9.0
Y podemos compilar com os seguintes comandos:
./configure --prefix=/opt --sysconfdir=/etc/ssh make make install