Le risposte al ping e un accesso SSH rifiutato possono essere entrambi veri nello stesso momento, e la coppia non incrimina il tunnel. Le risposte echo e una connessione TCP alla porta 22 sono test diversi con selettori diversi, politiche diverse e spesso destinazioni diverse. Cattura un tentativo SSH deliberato, poi nomina l'ultima fase che ha raggiunto. Quell'unico artefatto sostituisce una dozzina di modifiche di configurazione speculative.

Cattura un tentativo, non una sessione di tastatine

Esegui il client una volta con diagnostica dettagliata, condivisione della connessione disattivata e un timeout di connessione limitato. Disattivare la condivisione conta perché una connessione master già autenticata risponderebbe altrimenti per il nuovo tentativo e nasconderebbe il guasto che stai inseguendo.

ssh -4 -vv -o ControlPath=none -o ConnectTimeout=10 [email protected]

Conserva la destinazione, la famiglia di indirizzi, il timestamp e l'ultimo errore non segreto. Il flag IPv4 significa anche che questo tentativo non dice nulla su un percorso IPv6 verso lo stesso nome, quindi non generalizzare da esso. Annota da dove è stato fatto il tentativo. Un controllo sul gateway VPN non è lo stesso punto di vista di un portatile dietro di esso, e la maggior parte delle contraddizioni in questi ticket nasce dal mescolare i due.

Fasi uno e due: TCP prima di SSH

Il primo confine è la raggiungibilità del socket: un indirizzo, una porta e una rotta che il pacchetto segue davvero. Se la connessione TCP non si completa mai, sopra di essa non esiste ancora nulla, e le chiavi host e gli account sono irrilevanti.

nc -vz 10.90.4.20 22
ip route get 10.90.4.20
tcpdump -ni any 'host 10.90.4.20 and port 22'

Correla la cattura con il tentativo del client. Un SYN che esce e nulla che torna indica filtraggio, selettori o una rotta mancante sul lato remoto; una risposta con reset indica qualcosa che rifiuta attivamente invece di scartare. Il secondo confine è lo scambio del protocollo SSH stesso. Una connessione TCP che si completa e poi si blocca ha superato la raggiungibilità ed è entrata in negoziazione, risposta del server o gestione dei pacchetti. È un'altra indagine, ed è lì che i problemi legati alla dimensione diventano plausibili per la prima volta.

Fase tre: quale chiave ha risposto

Quando il trasporto è attivo, il client verifica la chiave host del server. Un rifiuto qui è un'affermazione sull'identità, non sulla crittografia: il peer ha presentato una chiave che la tua politica non accetta. Trattalo come condizione di arresto e verifica fuori banda, contro la console o l'operatore che ha ricostruito l'host. Cancellare la voce memorizzata per eliminare l'avviso è l'unica scorciatoia da rifiutare, perché distrugge la prova che qualcosa ha risposto in modo inatteso.

Se l'host è stato davvero ricostruito, rimuovi il record obsoleto solo dopo la conferma della nuova impronta, e annota la data e il motivo. Il prossimo ingegnere incontrerà lo stesso avviso e ha bisogno di quel contesto.

Fasi quattro e cinque: account contro permesso

L'autenticazione è il quarto confine. Credenziali rifiutate significano che il server ha valutato il tentativo e lo ha rifiutato; controlla l'account, il tipo di credenziale accettato dal server e la politica del server stesso invece della password VPN. Il quinto confine è l'autorizzazione dopo un accesso riuscito. A un utente autenticato può ancora essere negata una shell, un comando, un sottosistema o un inoltro, e quei rifiuti sembrano guasti a chi legge solo l'ultima riga del client.

Last stage reachedWhat it provesWhere to look next
No TCP connectionNo SSH transport existsAddress, port, route, selectors, filter, listener
TCP up, exchange incompleteReachability is not the blockerServer response, negotiation, packet handling
Host identity rejectedThe peer is not the expected hostIndependently verified host key
User authentication rejectedThe attempt reached authenticationAccount, credential and server policy
Authenticated, session deniedLogin succeeded, the operation did notShell, command or forwarding permission

Fermati dopo un paio di tentativi di password falliti. Le supposizioni ripetute producono blocchi che poi sembrano un secondo guasto non correlato e costano più tempo del ticket originale.

Rollback e il registro che conservi

Cambia una cosa alla volta e annota cosa hai cambiato prima di ritestare. Se una modifica peggiora il tentativo, annullala subito invece di impilare un'altra correzione sopra. Ripeti l'operazione originale dal client e dal contesto originali. Un accesso riuscito da un'altra macchina, su un'altra famiglia di indirizzi, non è una riproduzione e non dimostra la correzione.

Ripulisci ciò che condividi. L'output dettagliato del client può trasportare nomi interni, etichette di account, percorsi di chiavi e identificatori di chiavi pubbliche, quindi pubblica la conclusione per fasi invece di una traccia grezza.

Articoli correlati