Eu estou tentando ssh para máquina remota, a tentativa falha:
$ ssh -vvv [email protected]
OpenSSH_7.7p1, OpenSSL 1.0.2o 27 Mar 2018
.....
debug2: ciphers ctos: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: ciphers stoc: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected]
debug2: compression stoc: none,[email protected]
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: rsa-sha2-512
Unable to negotiate with 192.168.100.14 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Tanto quanto eu entendi a última cadeia do log, o servidor oferece para usar um dos seguintes 4 algoritmos de codificação: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
. Parece que meu cliente ssh não suporta nenhum deles, portanto, o servidor e o cliente não podem negociar mais.
Mas meu cliente suporta todos os algoritmos sugeridos:
$ ssh -Q cipher
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
[email protected]
aes128-ctr
... and there are several more.
E se eu especificar explicitamente o algoritmo assim:
ssh -vvv -c aes256-cbc [email protected]
Eu consigo fazer login com sucesso no servidor.
Meu ~/.ssh/config
não contém nenhuma diretiva relacionada a criptografia (na verdade, eu o removi completamente, mas o problema continua).
Então, por que cliente e servidor não podem decidir qual código usar sem minhas instruções explícitas? O cliente entende que o servidor suporta aes256-cbc
, o cliente entende que ele pode usá-lo sozinho, por que não usá-lo?
Algumas notas adicionais:
ATUALIZAÇÃO: problema resolvido
Como telcoM explicou o problema é com o servidor: ele sugere apenas os algoritmos de cifra obsoletos. Eu tinha certeza de que tanto o cliente quanto o servidor não estão desatualizados. Eu entrei no servidor (a propósito, é Synology, atualizado para a última versão disponível), e examinei o /etc/ssh/sshd_config
. A primeira linha (!) Deste arquivo foi:
Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Isso é muito estranho (o fato de que a linha é a primeira no arquivo), tenho certeza de que nunca toquei no arquivo antes. No entanto, mudei a linha para:
Ciphers aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
reiniciou o servidor (não descobriu como reiniciar o serviço sshd
) e, agora, o problema desapareceu: posso ssh para o servidor como de costume.