Ping ради, али SSH не успева преко VPN-а: која фаза се покварила?
Један детаљан покушај одваја TCP доступност, SSH транспорт, идентитет хоста, пријаву корисника и дозволу сесије, па престајете да нагађате о тунелу.
Ping одговори и одбијена SSH пријава могу бити истовремено тачни, а тај пар не указује на тунел. Ехо одговори и TCP веза на порт 22 су различити тестови са различитим селекторима, различитим политикама и често различитим одредиштима. Забележите један намеран SSH покушај, па именујте последњу фазу коју је достигао. Тај један артефакт замењује десетак спекулативних измена конфигурације.
Забележите један покушај, а не сесију чачкања
Покрените клијент једном са детаљном дијагностиком, искљученим дељењем везе и ограниченим временом повезивања. Искључивање дељења је важно јер ће претходно аутентификована главна веза иначе одговорити за нови покушај и сакрити квар који ловите.
ssh -4 -vv -o ControlPath=none -o ConnectTimeout=10 [email protected]
Сачувајте одредиште, породицу адреса, временску ознаку и последњу неоткривену грешку. Заставица IPv4 такође значи да овај покушај ништа не говори о IPv6 путу до истог имена, па немојте из њега генерализовати. Забележите одакле је покушај направљен. Провера на VPN гејтвеју није иста тачка гледишта као лаптоп иза њега, а већина противречности у овим тикетима долази од мешања двога.
Прва и друга фаза: TCP пре SSH-а
Прва граница је доступност утичнице: адреса, порт и рута коју пакет стварно прати. Ако се TCP веза никада не успостави, ништа изнад ње још не постоји, а кључеви хоста и налози су неважни.
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'
Повежите снимак са покушајем клијента. SYN који одлази и ништа се не враћа упућује на филтрирање, селекторе или руту која недостаје на другој страни; одговор са ресетом упућује на нешто што активно одбија уместо да одбацује. Друга граница је сама размена SSH протокола. TCP веза која се успостави и затим заглави прешла је доступност и ушла у преговарање, одговор сервера или обраду пакета. То је друга истрага, и ту проблеми повезани са величином први пут постају вероватни.
Трећа фаза: чији је кључ одговорио
Кад је транспорт подигнут, клијент проверава кључ хоста сервера. Одбијање овде је изјава о идентитету, не о криптографији: партнер је представио кључ који ваша политика не прихвата. Третирајте то као услов заустављања и проверите изван канала, преко конзоле или оператера који је поново изградио хост. Брисање запамћеног уноса да бисте уклонили упозорење једини је пречица коју треба одбити, јер уништава доказ да је нешто одговорило неочекивано.
Ако је хост заиста поново изграђен, уклоните застарели запис тек након што се потврди нови отисак, и забележите датум и разлог. Следећи инжењер ће наићи на исто упозорење и потребан му је тај контекст.
Четврта и пета фаза: налог наспрам дозволе
Аутентификација је четврта граница. Одбијени акредитиви значе да је сервер оценио покушај и одбио га; проверите налог, врсту акредитива коју сервер прихвата и сопствену политику сервера, а не VPN лозинку. Пета граница је ауторизација након успешне пријаве. Аутентификованом кориснику ипак може бити одбијена љуска, наредба, подсистем или прослеђивање, а та одбијања изгледају као кварови ономе ко чита само последњи ред клијента.
| 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 |
Престаните након неколико неуспелих покушаја лозинке. Понављено нагађање ствара закључавања која затим изгледају као други, неповезани квар и троше више времена од првобитног тикета.
Враћање и запис који чувате
Мењајте једну ствар по једну и запишите шта сте променили пре поновног тестирања. Ако промена погорша покушај, одмах је вратите уместо да слажете још један поправак на врх. Поновите првобитну радњу са првобитног клијента и у првобитном контексту. Успешна пријава са другог рачунара, у другој породици адреса, није репродукција и не доказује поправак.
Очистите оно што делите. Опширан излаз клијента може носити интерна имена, ознаке налога, путање кључева и идентификаторе јавних кључева, па објавите фазни закључак уместо сировог трага.