Ping-antwoorden en een geweigerde SSH-aanmelding kunnen tegelijk waar zijn, en het paar beschuldigt de tunnel niet. Echo-antwoorden en een TCP-verbinding naar poort 22 zijn verschillende tests met verschillende selectors, verschillende beleidsregels en vaak verschillende bestemmingen. Leg één bewuste SSH-poging vast en benoem dan de laatste fase die hij bereikte. Dat ene artefact vervangt een dozijn speculatieve configuratiewijzigingen.

Leg één poging vast, geen sessie van porren

Voer de client één keer uit met uitgebreide diagnostiek, delen van verbindingen uitgeschakeld en een begrensde verbindingstime-out. Delen uitschakelen is belangrijk, want een eerder geauthenticeerde hoofdverbinding antwoordt anders voor de nieuwe poging en verbergt de fout die je jaagt.

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

Bewaar de bestemming, de adresfamilie, de tijdstempel en de laatste niet-geheime fout. De IPv4-vlag betekent ook dat deze poging niets zegt over een IPv6-route naar dezelfde naam, dus generaliseer daar niet uit. Noteer vanwaar de poging is gedaan. Een controle op de VPN-gateway is niet hetzelfde gezichtspunt als een laptop erachter, en de meeste tegenstrijdigheden in deze tickets komen van het door elkaar halen van beide.

Fase één en twee: TCP vóór SSH

De eerste grens is de bereikbaarheid van de socket: een adres, een poort en een route die het pakket werkelijk volgt. Als de TCP-verbinding nooit tot stand komt, bestaat er nog niets boven, en hostsleutels en accounts zijn irrelevant.

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'

Correleer de opname met de clientpoging. Een SYN die vertrekt en niets dat terugkomt wijst op filtering, selectors of een ontbrekende route aan de andere kant; een antwoord met een reset wijst op iets dat actief weigert in plaats van te laten vallen. De tweede grens is de SSH-protocoluitwisseling zelf. Een TCP-verbinding die tot stand komt en dan blijft hangen, is voorbij de bereikbaarheid en in onderhandeling, serverantwoord of pakketafhandeling beland. Dat is een ander onderzoek, en daar worden groottegerelateerde problemen voor het eerst plausibel.

Fase drie: wiens sleutel antwoordde

Zodra het transport staat, verifieert de client de hostsleutel van de server. Een weigering hier is een uitspraak over identiteit, niet over cryptografie: de tegenpartij presenteerde een sleutel die jouw beleid niet accepteert. Behandel dat als stopvoorwaarde en verifieer buiten de band, via de console of de operator die de host herbouwde. Het opgeslagen item wissen om de waarschuwing weg te krijgen is de enige snelkoppeling die je moet weigeren, omdat die het bewijs vernietigt dat er iets onverwachts antwoordde.

Is de host echt herbouwd, verwijder het verouderde record dan pas nadat de nieuwe vingerafdruk is bevestigd, en noteer datum en reden. De volgende engineer krijgt dezelfde waarschuwing en heeft die context nodig.

Fase vier en vijf: account tegenover toestemming

Authenticatie is de vierde grens. Geweigerde inloggegevens betekenen dat de server de poging beoordeelde en weigerde; controleer het account, het type inloggegevens dat de server accepteert en het eigen beleid van de server in plaats van het VPN-wachtwoord. De vijfde grens is autorisatie na een geslaagde aanmelding. Een geauthenticeerde gebruiker kan alsnog een shell, een opdracht, een subsysteem of doorsturing worden geweigerd, en die weigeringen lijken op storingen voor wie alleen de laatste regel van de client leest.

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

Stop na een paar mislukte wachtwoordpogingen. Herhaalde gissingen veroorzaken blokkades die er daarna als een tweede, ongerelateerde fout uitzien en meer tijd kosten dan het oorspronkelijke ticket.

Terugdraaien en het verslag dat je bijhoudt

Wijzig één ding tegelijk en schrijf op wat je hebt gewijzigd voordat je opnieuw test. Maakt een wijziging de poging erger, draai die dan onmiddellijk terug in plaats van er nog een correctie bovenop te stapelen. Herhaal de oorspronkelijke handeling vanaf de oorspronkelijke client en context. Een geslaagde aanmelding vanaf een andere machine, in een andere adresfamilie, is geen reproductie en bewijst de oplossing niet.

Sanitiseer wat je deelt. Uitgebreide clientuitvoer kan interne namen, accountlabels, sleutelpaden en identificaties van openbare sleutels bevatten, dus publiceer de gefaseerde conclusie in plaats van een ruwe trace.

Gerelateerde artikelen