Como habilitar a troca de chaves diffie-hellman-group1-sha1 no Debian 8.0?

66

Não consigo ssh para um servidor que solicita um diffie-hellman-group1-sha1método de troca de chaves:

ssh 123.123.123.123
Unable to negotiate with 123.123.123.123 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

Como habilitar o diffie-hellman-group1-sha1método de troca de chaves no Debian 8.0?

Eu tentei (como proposto aqui )

  1. adicione as seguintes linhas ao meu /etc/ssh/ssh_config

    KexAlgorithms diffie-hellman-group1-sha1,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
    Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr
    
  2. regenere chaves com

    ssh-keygen -A
    
  3. reinicie o ssh com

    service ssh restart
    

    mas ainda assim obtém o erro.

j1088099.mvrht.com.
fonte
Eu tenho o mesmo acontecendo comigo com Debian 9.
Rui F Ribeiro
Tente este Diffie-Hellman-group-exchange-sha256
Miguel

Respostas:

93

O site do OpenSSH possui uma página dedicada a problemas herdados como este. Ele sugere a seguinte abordagem, no cliente :

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 123.123.123.123

ou mais permanentemente, adicionando

Host 123.123.123.123
    KexAlgorithms +diffie-hellman-group1-sha1

para ~/.ssh/config.

Isso habilitará os algoritmos antigos no cliente , permitindo que ele se conecte ao servidor.

Stephen Kitt
fonte
Eu também enfrentei esse problema hoje, mas isso foi devido à rede. Mudei a rede eo problema foi embora
Luv33preet
Tentei acima, mas conseguiUnable to negotiate with 192.168.1.123 port 22222: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes256-cbc,twofish256-cbc,twofish-cbc,twofish128-cbc,blowfish-cbc
typelogic
@ifelsemonkey, esse é um problema diferente, observe que a oferta que você recebe não é a mesma da pergunta.
Stephen Kitt
2
Confirmou que era um problema diferente. Consegui resolvê-lo adicionando a seguinte entrada ao meu ~/.ssh/configarquivo. Host 192.168.1.123e embaixo Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc.
Typelogic
18

Eu tentei esta solução, mas meu problema era que eu tinha muitos clientes (herdados) conectados ao meu servidor atualizado recentemente (ubuntu 14 -> ubuntu 16).

A alteração de openssh6 -> openssh7 desativou por padrão o diffie-hellman-group1-sha1método de troca de chaves.

Depois de ler isso e isso , vim com as alterações que precisava fazer no /etc/ssh/sshd_configarquivo:

#Legacy changes
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc

Mas um conjunto de alterações herdado mais amplo é (retirado daqui )

#Legacy changes
KexAlgorithms diffie-hellman-group1-sha1,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr
arod
fonte
4
Espero que você possa atualizar seus clientes em algum momento, pois os algoritmos herdados foram desativados por boas razões e não devem ser reativados levemente (você provavelmente percebe isso, achei que valeria a pena apontar para outros leitores).
Stephen Kitt
11
Isso funciona no lado do servidor (ao contrário da resposta muito semelhante, aceitou que incidiu sobre o lado do cliente.)
KNB
Estou tentando usar o mesmo para ativar as chaves antigas. mas desde que eu sou um novato eu realmente não sei o IP para colocar quando eu escrever ssh -oKexAlgorithms = + Diffie-Hellman-group1-sha1 123.123.123.123
Yousi
Para adicionar para futuras pessoas descobrirem, eu estava me conectando via SSH de um Mac executando o OpenSSH_7.9p1 a um switch Cisco 3750 em execução: Cisco IOS Software, Software C3750 (C3750-IPSERVICESK9-M), Versão 12.2 (55) SE12, SOFTWARE DE LANÇAMENTO (fc2). Adicionei o seguinte à configuração do cliente e consegui ssh: KexAlgorithms + diffie-hellman-group1-sha1 Cifras + aes128-cbc
DYoung