Eu encontrei quando conectei a vários servidores ssh (neste caso, aqueles executados por instituições financeiras), que para muitos os métodos diffie-hellman-group-exchange não funcionam com o Ubuntu 16, enquanto eles funcionavam bem com o Ubuntu 14 Tem a ver com a negociação do tamanho da chave depois de aceitar o método. O OpenSSH no Ubuntu 16 não aceita menos do que uma chave de 2048 bits, enquanto o OpenSSH mais antigo aceitou uma chave mais curta neste contexto. O trabalho em torno do cliente é excluí-los. Então, em / etc / ssh / ssh_config eu tenho:
HostKeyAlgorithms +ssh-dss
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,[email protected]
A primeira linha, permitindo DSS, eu sei que é menos segura. Mas as conexões são necessárias e eu não controlo esses servidores. A segunda é a lista completa de métodos de troca de chaves suportados (ssh -Q kex) com apenas os dois problemáticos métodos diffie-hellman-group-exchange- * deixados de fora. Provavelmente seria uma boa prática listar os itens na ordem inversa, já que isso pode ser considerado como ordem de preferência, e a lista, como eu a tenho, coloca os métodos mais novos e mais strongs por último. Em qualquer caso, deixar de fora os que não funcionam com os servidores com os quais você precisa se conectar ou, alternativamente, especificar um único, conhecido como compatível em um da linha de comando, é o caminho em volta do problema que você e eu vimos. / p>