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/config
nã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:
Não havia esse problema há algum tempo (cerca de um mês) atrás. Não alterei nenhum arquivo de configuração ssh desde então. Eu atualizei os pacotes instalados.
Há uma pergunta que descreve um problema com aparência muito semelhante, mas não há resposta para minha pergunta: ssh não é possível negociar - nenhum método de troca de chave correspondente foi encontrado
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 sshd
apenas o serviço) e agora o problema se foi: eu posso ssh no servidor como de costume.
Respostas:
Os
-cbc
algoritmos 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.)
fonte
Você pode atualizar sua configuração ssh a partir do arquivo localizado em: / etc / ssh / ssh_config
sudo nano /etc/ssh/ssh_config
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
Ctrl + X
. Pressione Enter para salvar e sair.fonte
crie um arquivo dentro de ~ / .ssh / config e cole abaixo do conteúdo
fonte