Soluzione 1:
Il problema sembra un bug lato server. Quando il client invia l'elenco di cifrature, il server openssh probabilmente si aspetta di poter leggere l'elenco in una singola chiamata di sistema.
Se l'elenco delle crittografie supportate è più lungo di quello che può essere trasmesso in un pacchetto, il server potrebbe ricevere meno byte nella prima chiamata di quanto previsto. Il comportamento corretto sul server sarebbe eseguire un'altra chiamata per ottenere il resto dei byte. Ma dalla descrizione del problema appare, il server invece chiude la connessione quando non ha ricevuto l'elenco completo delle cifre in una sola volta. Quando arriva il prossimo pacchetto dal client, il server invierà una connessione ripristinata al client.
La configurazione del client per l'utilizzo di un elenco più breve di cifrari funzionerebbe quindi per aggirare il bug. Il client openssh cercherà l'elenco di cifrature nei seguenti posti:
- Sulla riga di comando utilizzando -c cipher_spec o -o Ciphers=cipher_spec
- In ~/.ssh/config specificando Ciphers cipher_spec nella relativa sezione host o prima del primo host.
- In /etc/ssh/ssh_config utilizzando lo stesso formato di ~/.ssh/config
- Un elenco predefinito integrato nel client in fase di compilazione.
I due file di configurazione sono rispettivamente impostazioni per utente e a livello di sistema. Utilizzando Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
come suggerito da Eric dovrebbe funzionare bene.
Soluzione 2:
Puoi specificare la cifratura nel file di configurazione ssh (/etc/ssh/ssh_config o simile, dipende da $PREFIX ecc.). Qualsiasi opzione passata al client ssh sulla riga di comando può essere impostata nel file di configurazione ssh (client).
Ecco la riga pertinente (basta rimuovere il commento):
# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
Soluzione 3:
Il mio modo per risolverlo, spero che aiuti qualcuno :
# Recreate host keys
sudo rm /etc/ssh/ssh_host_*
sudo ssh-keygen -A
# Re-install SSh
sudo apt-get --reinstall install openssh-server openssh-client
Modifica sshd_config aggiungendo un valore
add : MaxAuthTries 3
Modifica ssh_config decommentando un valore
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc