Guida basata su interventi documentati. Una correzione per consentire la connessione di un client SSH molto vecchio a un server Ubuntu, limitando rigorosamente l'esposizione di algoritmi legacy.
Scenario confermato
Un client Debian 5 doveva connettersi a un host Ubuntu moderno. La negoziazione non riusciva per incompatibilità tra gli algoritmi di scambio chiavi e le cipher suite supportate. La macchina sorgente non poteva essere aggiornata immediatamente.
Diagnosi prima di cambiare la sicurezza
ssh -vvv utente@HOST_DI_TEST
sshd -T | grep -Ei 'kexalgorithms|ciphers|pubkeyacceptedalgorithms'
sshd -t
ufw status numbered
Registrare l’errore esatto della negoziazione: no matching key exchange method è diverso da un problema di chiave host o password.
Dove mettere le direttive
Il problema di configurazione verificato era il posizionamento di direttive come KexAlgorithms, Ciphers e accettazione delle chiavi ssh-rsa dentro un blocco Match che non le supportava. Queste opzioni vanno applicate in un contesto consentito dal parser di sshd_config. Non riabilitare automaticamente algoritmi insicuri a livello globale.
Ridurre la superficie di attacco
La soluzione transitoria ha vincolato l'accesso SSH all'indirizzo sorgente autorizzato tramite UFW. È preferibile, se possibile, usare un jump host aggiornato che parli un protocollo moderno verso il server finale, evitando di esporre a Internet gli algoritmi obsoleti.
Collaudo
sshd -t
systemctl reload ssh
ufw status verbose
# Test di accesso da sorgente autorizzata e negata
ssh -vvv utente@HOST_DI_TEST
La verifica della sintassi deve precedere ogni reload. Conservare una sessione amministrativa già aperta per recuperare eventuali errori.
Conclusione
La compatibilità legacy è una misura temporanea con rischio crittografico. La soluzione definitiva è aggiornare il client o predisporre un gateway controllato.
Articoli correlati
- php hardening session upload progress use strict mode
- apache balancer manager senza password require all granted
Usare segnaposto e verificare l’ambiente prima di eseguire i comandi. Nessuna credenziale o identificativo infrastrutturale reale è riportato.