Em um Bookworm Debian 12 (executando OpenSSH_9.2), que foi atualizado recentemente do Debian 11, apenas os algoritmos de chave de host do servidor rsa-sha2-512 , rsa-sha2-256 estão disponíveis por padrão. A configuração HostKeyAlgorithms +additional-algorithm-to-use
em sshd_config (que por si só é muito básica) permite apenas a adição de ssh-rsa, mas não os outros. A página man do HostKeyAlgorithms lista o seguinte como padrão (que eu esperaria que funcionasse imediatamente):
- [e-mail protegido] ,
- [e-mail protegido] ,
- [e-mail protegido] ,
- [e-mail protegido] ,
- [e-mail protegido] ,
- [e-mail protegido] ,
- [e-mail protegido] ,
- [e-mail protegido] ,
- ssh-ed25519,
- ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
- [e-mail protegido] ,
- [e-mail protegido] ,
- rsa-sha2-512,rsa-sha2-256
A ssh -Q HostKeyAlgorithms
consulta para algoritmos disponíveis retorna:
- ssh-ed25519
- [e-mail protegido]
- [e-mail protegido]
- [e-mail protegido]
- ecdsa-sha2-nistp256
- [e-mail protegido]
- ecdsa-sha2-nistp384
- [e-mail protegido]
- ecdsa-sha2-nistp521
- [e-mail protegido]
- [e-mail protegido]
- [e-mail protegido]
- [e-mail protegido]
- ssh-dss
- [e-mail protegido]
- ssh-rsa
- [e-mail protegido]
- rsa-sha2-256
- [e-mail protegido]
- rsa-sha2-512
- [e-mail protegido]
Por exemplo, ao tentar conectar-se do mesmo host usando ssh localhost -oHostKeyAlgorithms=ecdsa-sha2-nistp256 -vvv
, "Unable to negotiate with 127.0.0.1 port 22: no matching host key type found. Their offer rsa-sha2-512,rsa-sha2-256,ssh-rsa
instalei uma VM Debian 12 simples localmente para comparar o comportamento e, quando executei o mesmo comando, a negociação foi bem-sucedida.
Eu realmente apreciaria sugestões sobre como disponibilizar outros algoritmos de chave de host.
Seguindo o comentário postado por dave_thompson_085, executei as seguintes etapas para corrigir o problema (como usuário root):
/etc/ssh/
/etc/ssh/
ssh-keygen -A
para regenerar chaves de hostssh-keygen -q -N "" -t ecdsa-sha2-nistp384 -f /etc/ssh/ssh_host_ecdsa_sha2_nistp384_key
/etc/ssh/sshd_config
arquivo correspondente ao nome e local do arquivo de chave do host. Por exemploHostKey /etc/ssh/ssh_host_ecdsa_key
/etc/ssh/sshd_config
arquivo. Por exemploHostKeyAlgorithms +ssh-rsa
. A lista separada por vírgulas pode ser usada para adicionar mais. ssh-rsa adicionado apenas para compatibilidade com versões anteriores neste caso.Nota: Só porque algo pode ser habilitado não significa que deva ser habilitado, mesmo que pareça a solução mais simples. Verifique se ele atende aos níveis de segurança exigidos.