Corrija falhas de conexão SSH causadas pela descontinuação do esquema de assinatura ssh-rsa (RSA/SHA-1) no Ubuntu 22.04, CentOS Stream 9 e sistemas similares.
Contexto
O RSA é um algoritmo assimétrico usado em criptografia de chave pública. Ele depende de pares de chaves compostos por uma chave pública e uma chave privada. Os pares de chaves do ECS usam criptografia RSA por padrão. Consulte Visão geral.
O esquema de assinatura ssh-rsa usa o algoritmo de hash SHA-1 com RSA. Como o SHA-1 é vulnerável a ataques, o ssh-rsa foi desativado por padrão a partir do OpenSSH 8.8.
A descontinuação do ssh-rsa não afeta as próprias chaves RSA. As chaves RSA suportam vários esquemas de assinatura:
rsa-sha2-256 (RSA/SHA-256)
rsa-sha2-512 (RSA/SHA-512)
ssh-rsa (RSA/SHA-1)
Apenas o ssh-rsa (RSA/SHA-1) é desativado por padrão.
Erro: key type ssh-rsa not in PubkeyAcceptedAlgorithms no Ubuntu 22.04
Sintoma
A conexão com uma instância Ubuntu 22.04 via FinalShell ou nuoshell usando uma chave RSA falha. O log do sshd exibe:
userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
Causa
O Ubuntu 22.04 desativa o ssh-rsa por padrão. O FinalShell e o nuoshell suportam apenas ssh-rsa (RSA/SHA-1) e não negociam rsa-sha2-256 ou rsa-sha2-512, o que causa a falha da conexão.
Soluções
Escolha uma das soluções abaixo:
-
Método 1: Usar outro algoritmo de chave
Gere um par de chaves com um algoritmo diferente, como ECDSA ou DSA.
-
Método 2: Usar outro cliente SSH
Conecte-se com um cliente compatível com rsa-sha2-256 ou rsa-sha2-512, como o Workbench do Alibaba Cloud.
-
Método 3: Reativar o ssh-rsa na configuração do sshd
ImportanteO uso de ssh-rsa (RSA/SHA-1) pode apresentar riscos de segurança. Prossiga com cautela.
Permita o ssh-rsa na configuração do sshd:
echo 'PubkeyAcceptedAlgorithms=+ssh-rsa' >> /etc/ssh/sshd_config systemctl restart sshd
Erro: key type ssh-rsa not in PubkeyAcceptedAlgorithms no CentOS Stream 9 e distribuições similares
Sistemas operacionais afetados
CentOS Stream 9
AlmaLinux 9
Rocky Linux 9
Red Hat Enterprise Linux 9
Fedora 33 e versões posteriores
Sintoma
A conexão com uma instância via FinalShell ou nuoshell usando uma chave RSA falha. O log do sshd exibe:
userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
Causa
O CentOS Stream 9 e os demais sistemas listados desativam o ssh-rsa (RSA/SHA-1) por padrão. O FinalShell e o nuoshell suportam apenas ssh-rsa e não negociam rsa-sha2-256 ou rsa-sha2-512, o que causa a falha da conexão.
Execute update-crypto-policies --show para visualizar a política criptográfica atual.
Soluções
Escolha uma das soluções abaixo:
-
Método 1: Usar outro algoritmo de chave
Gere um par de chaves com um algoritmo diferente, como ECDSA ou DSA.
-
Método 2: Usar outro cliente SSH
Conecte-se com um cliente compatível com rsa-sha2-256 ou rsa-sha2-512, como o Alibaba Cloud Workbench. Consulte Métodos de conexão com uma instância ECS.
-
Método 3: Alterar a política criptográfica para LEGACY
ImportanteA política LEGACY pode apresentar riscos de segurança desconhecidos. Prossiga com cautela.
Defina a política criptográfica como LEGACY:
update-crypto-policies --set LEGACY update-crypto-policies --show