ssh Não é possível negociar: "nenhuma cifra correspondente encontrada" está rejeitando cbc

23

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 entendo a última seqüência do log, as ofertas de servidor para utilizar um dos seguintes 4 algoritmos de criptografia: 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]

Posso fazer login com êxito no servidor.

Meu ~/.ssh/confignão contém nenhuma diretiva relacionada à cifra (na verdade, eu a removi completamente, mas o problema permanece).

Então, por que cliente e servidor não podem decidir qual cifra usar sem minhas instruções explícitas? O cliente entende que o servidor suporta aes256-cbc, o cliente entende que ele próprio pode usá-lo, por que não usá-lo?

Algumas notas adicionais:

UPDATE: problema resolvido

Como a telcoM explicou, o problema está no servidor: sugere apenas os algoritmos de codificação obsoletos. Eu tinha certeza de que o cliente e o servidor não estão desatualizados. Eu entrei no servidor (a propósito, é Synology, atualizado para a versão mais recente disponível) e examinei o /etc/ssh/sshd_config. A primeira linha (!) Desse arquivo foi:

Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

Isso é muito estranho (o fato de a linha ser a primeira do arquivo), tenho certeza de que nunca o toquei 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 sshdapenas o serviço) e agora o problema se foi: eu posso ssh no servidor como de costume.

lesnik
fonte
11
Relacionado - unix.stackexchange.com/questions/333728/… - mostra informações sobre como desativar.
Slm
3
Eu tive o mesmo problema e descobri que você pode facilmente mudar isso na interface da web (já que o ssh não funcionou para mim ...), mas vá para "Terminal -> configurações avançadas" no painel de controle do DSM e selecione a opção perfil "alto" - por alguma razão, eu tive uma seleção manual ativada lá ... Espero que seja algo que fiz e esqueci, e não algo feito por uma atualização anterior do DSM! - as opções agora são aes128-ctr, aes128-gcm, aes192 *, aes256 *, dhge-sha256, curve25519-sha256, hmac-sha2-256
Zak

Respostas:

16

Os -cbcalgoritmos se mostraram vulneráveis ​​a um ataque. Como resultado, as versões atualizadas do OpenSSH agora rejeitarão esses algoritmos por padrão: por enquanto, eles ainda estarão disponíveis se você precisar deles, mas, como você descobriu, deve ativá-los explicitamente.

Inicialmente, quando a vulnerabilidade foi descoberta (no final de 2008, quase 10 anos atrás!), Esses algoritmos foram colocados apenas no final da lista de prioridades por razões de compatibilidade, mas agora a depreciação no SSH atingiu uma fase em que esses algoritmos são desativado por padrão. De acordo com essa pergunta no Cryptography.SE , essa etapa de reprovação já estava ocorrendo no ano de 2014.

Considere este lembrete gentil para atualizar seu servidor SSH , se possível. (Se for uma implementação baseada em firmware, verifique se o firmware atualizado está disponível para o seu hardware.)

telcoM
fonte
2

Você pode atualizar sua configuração ssh a partir do arquivo localizado em: / etc / ssh / ssh_config

  1. Lançar um terminal.
  2. Cole a linha no terminal: sudo nano /etc/ssh/ssh_config
  3. Coloque sua senha. Pressione Enter. O arquivo de configuração SSH será exibido.
  4. Remova o comentário da linha: Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
  5. Pressione Ctrl + X. Pressione Enter para salvar e sair.
Farhan Ar Rafi
fonte
1

crie um arquivo dentro de ~ / .ssh / config e cole abaixo do conteúdo

Host *
  SendEnv LANG LC_*
  Ciphers +aes256-cbc
Yash Jagdale
fonte