Ping funguje, ale SSH přes VPN selhává: která fáze se rozbila?
Jeden podrobný pokus oddělí dostupnost TCP, přenos SSH, identitu hostitele, přihlášení uživatele a oprávnění relace, takže přestanete hádat o tunelu.
Odpovědi na ping a odmítnuté přihlášení SSH mohou platit zároveň a tato dvojice tunel neobviňuje. Odpovědi na echo a TCP spojení na port 22 jsou různé testy s různými selektory, různými politikami a často různými cíli. Zachyťte jeden záměrný pokus o SSH a potom pojmenujte poslední fázi, které dosáhl. Tento jediný artefakt nahradí tucet spekulativních změn konfigurace.
Zachyťte jeden pokus, ne relaci šťouchání
Spusťte klienta jednou s podrobnou diagnostikou, vypnutým sdílením připojení a omezeným časovým limitem připojení. Vypnutí sdílení je důležité, protože dříve ověřené hlavní připojení jinak odpoví za nový pokus a skryje poruchu, kterou hledáte.
ssh -4 -vv -o ControlPath=none -o ConnectTimeout=10 [email protected]
Zachovejte cíl, rodinu adres, časové razítko a poslední neutajenou chybu. Příznak IPv4 také znamená, že tento pokus nic neříká o cestě IPv6 ke stejnému jménu, takže z něj nezobecňujte. Zaznamenejte, odkud byl pokus proveden. Kontrola na bráně VPN není stejný pohled jako notebook za ní a většina rozporů v těchto tiketech pochází z mísení obojího.
První a druhá fáze: TCP před SSH
První hranicí je dostupnost socketu: adresa, port a trasa, kterou paket skutečně sleduje. Pokud se TCP spojení nikdy nedokončí, nic nad ním ještě neexistuje a klíče hostitele a účty jsou irelevantní.
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'
Spojte záznam s pokusem klienta. SYN, který odejde a nic se nevrátí, ukazuje na filtrování, selektory nebo chybějící trasu na druhé straně; odpověď s resetem ukazuje na něco, co aktivně odmítá, místo aby zahazovalo. Druhou hranicí je samotná výměna protokolu SSH. TCP spojení, které se dokončí a pak uvázne, překročilo dostupnost a vstoupilo do vyjednávání, odpovědi serveru nebo zpracování paketů. To je jiné vyšetřování a právě tam se poprvé stanou pravděpodobnými problémy související s velikostí.
Třetí fáze: čí klíč odpověděl
Když je přenos nahoru, klient ověří klíč hostitele serveru. Odmítnutí zde je tvrzení o identitě, ne o kryptografii: protějšek předložil klíč, který vaše politika nepřijímá. Berte to jako podmínku zastavení a ověřte mimo pásmo, přes konzoli nebo u operátora, který hostitele přestavěl. Smazání zapamatované položky kvůli odstranění varování je jediná zkratka, kterou je třeba odmítnout, protože ničí důkaz, že něco odpovědělo nečekaně.
Pokud byl hostitel skutečně přestavěn, odstraňte zastaralý záznam až po potvrzení nového otisku a poznamenejte datum a důvod. Další inženýr narazí na stejné varování a potřebuje tento kontext.
Čtvrtá a pátá fáze: účet versus oprávnění
Ověření je čtvrtou hranicí. Odmítnuté přihlašovací údaje znamenají, že server pokus vyhodnotil a odmítl; zkontrolujte účet, typ přihlašovacích údajů, který server přijímá, a vlastní politiku serveru, ne heslo VPN. Pátou hranicí je autorizace po úspěšném přihlášení. Ověřenému uživateli lze přesto odepřít shell, příkaz, subsystém nebo přesměrování a tato odmítnutí vypadají jako poruchy někomu, kdo čte jen poslední řádek klienta.
| 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 |
Po několika neúspěšných pokusech o heslo přestaňte. Opakované hádání vytváří uzamčení, která pak vypadají jako druhá, nesouvisející závada, a stojí víc času než původní tiket.
Vrácení zpět a záznam, který si vedete
Měňte jednu věc po druhé a než znovu testujete, zapište, co jste změnili. Pokud změna pokus zhorší, okamžitě ji vraťte, místo abyste navršovali další opravu. Zopakujte původní operaci z původního klienta a kontextu. Úspěšné přihlášení z jiného stroje, v jiné rodině adres, není reprodukce a neprokazuje opravu.
Vyčistěte, co sdílíte. Podrobný výstup klienta může nést interní názvy, označení účtů, cesty ke klíčům a identifikátory veřejných klíčů, proto zveřejněte shrnutí po fázích, ne surovou stopu.