Ping radi, ali SSH ne uspijeva preko VPN-a: koja se faza pokvarila?
Jedan opširni pokušaj odvaja TCP dostupnost, SSH transport, identitet hosta, prijavu korisnika i dozvolu sesije, pa prestajete nagađati o tunelu.
Ping odgovori i odbijena SSH prijava mogu biti istovremeno tačni, a taj par ne ukazuje na tunel. Eho odgovori i TCP veza na port 22 različiti su testovi s različitim selektorima, različitim politikama i često različitim odredištima. Zabilježite jedan namjerni SSH pokušaj, pa imenujte posljednju fazu koju je dosegnuo. Taj jedan artefakt zamjenjuje desetak spekulativnih promjena konfiguracije.
Zabilježite jedan pokušaj, a ne sesiju čačkanja
Pokrenite klijent jednom s opširnom dijagnostikom, onemogućenim dijeljenjem veze i ograničenim vremenom spajanja. Onemogućavanje dijeljenja je važno jer će prethodno autentificirana glavna veza inače odgovoriti za novi pokušaj i sakriti kvar koji lovite.
ssh -4 -vv -o ControlPath=none -o ConnectTimeout=10 [email protected]
Zadržite odredište, porodicu adresa, vremensku oznaku i posljednju neotkrivenu grešku. Zastavica IPv4 također znači da ovaj pokušaj ne govori ništa o IPv6 putu do istog imena, pa nemojte iz njega generalizirati. Zabilježite odakle je pokušaj napravljen. Provjera na VPN gatewayu nije ista točka gledišta kao laptop iza njega, a većina proturječja u ovim tiketima dolazi od miješanja dvoga.
Prva i druga faza: TCP prije SSH-a
Prva granica je dostupnost utičnice: adresa, port i ruta koju paket stvarno slijedi. Ako se TCP veza nikad ne uspostavi, ništa iznad nje još ne postoji, a ključevi hosta i računi su nevažni.
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'
Povežite snimku s klijentskim pokušajem. SYN koji odlazi i ništa se ne vraća upućuje na filtriranje, selektore ili rutu koja nedostaje na drugoj strani; odgovor s resetom upućuje na nešto što aktivno odbija umjesto da odbacuje. Druga granica je sama razmjena SSH protokola. TCP veza koja se uspostavi i zatim zapne prešla je dostupnost i ušla u pregovaranje, odgovor servera ili obradu paketa. To je druga istraga, i tu problemi povezani s veličinom prvi put postaju vjerojatni.
Treća faza: čiji je ključ odgovorio
Kad je transport podignut, klijent provjerava ključ hosta servera. Odbijanje ovdje je izjava o identitetu, ne o kriptografiji: partner je predstavio ključ koji vaša politika ne prihvaća. Tretirajte to kao uvjet zaustavljanja i provjerite izvan kanala, preko konzole ili operatera koji je ponovno izgradio host. Brisanje zapamćenog unosa da biste uklonili upozorenje jedini je prečac koji treba odbiti, jer uništava dokaz da je nešto odgovorilo neočekivano.
Ako je host doista ponovno izgrađen, uklonite zastarjeli zapis tek nakon što se potvrdi novi otisak, i zabilježite datum i razlog. Sljedeći inženjer susrest će isto upozorenje i treba mu taj kontekst.
Četvrta i peta faza: račun nasuprot dozvoli
Autentifikacija je četvrta granica. Odbijeni podaci za prijavu znače da je server ocijenio pokušaj i odbio ga; provjerite račun, vrstu podataka za prijavu koju server prihvaća i vlastitu politiku servera, a ne VPN lozinku. Peta granica je autorizacija nakon uspješne prijave. Autentificiranom korisniku ipak se može odbiti ljuska, naredba, podsustav ili prosljeđivanje, a ta odbijanja izgledaju kao kvarovi onome tko čita samo zadnji redak klijenta.
| Last stage reached | What it proves | Where to look next |
|---|---|---|
| No TCP connection | No SSH transport exists | Address, port, route, selectors, filter, listener |
| TCP up, exchange incomplete | Reachability is not the blocker | Server response, negotiation, packet handling |
| Host identity rejected | The peer is not the expected host | Independently verified host key |
| User authentication rejected | The attempt reached authentication | Account, credential and server policy |
| Authenticated, session denied | Login succeeded, the operation did not | Shell, command or forwarding permission |
Prestanite nakon nekoliko neuspjelih pokušaja lozinke. Ponovljena nagađanja stvaraju zaključavanja koja zatim izgledaju kao drugi, nepovezani kvar i troše više vremena od izvornog tiketa.
Vraćanje i zapis koji čuvate
Mijenjajte jedno po jedno i zapišite što ste promijenili prije ponovnog testiranja. Ako promjena pogorša pokušaj, odmah je vratite umjesto da slažete još jedan popravak na vrh. Ponovite izvornu radnju s izvornog klijenta i u izvornom kontekstu. Uspješna prijava s drugog stroja, na drugoj porodici adresa, nije reprodukcija i ne dokazuje popravak.
Očistite ono što dijelite. Opširni izlaz klijenta može nositi interne nazive, oznake računa, putanje ključeva i identifikatore javnih ključeva, pa objavite fazni zaključak umjesto sirovog traga.