SSH SSH2_MSG_KEX_ECDH_REPLY этабында илинип калат: себеби ар дайым MTU эмес
Баннер келет, анан SSH ачкыч алмашууда күтөт. MTU-ны төмөндөтүүдөн мурун өлчөм маселесин ачкыч файлынын уруксатынан же алгоритм дал келбестигинен бөлүңүз.
Туннель иштеп жатат, баннер келет жана кардар ачкыч алмашуунун жообун күтүп жатканы тууралуу билдирүү чыгарат. Издөө натыйжалары түз MTU-га көрсөтөт, кээде бул туура. Көбүнчө андай эмес: жооп такыр жөнөтүлбөгөн болушу мүмкүн, анткени кардар ачкыч файлын окуй алган жок же тараптар алгоритм боюнча макулдашкан жок. Сап кардар эмнени күтүп жатканын сүрөттөйт, күтүү эмнеден башталганын эмес. Аны симптом катары кабыл алып, кандайдыр бир өлчөмдү өзгөртүүдөн мурун үч себепти бөлүңүз.
Жооп жалпы күтүлгөнбү, аны көрүү үчүн изди окуңуз
Толук чыгарылыш үнсүздүктөн мурунку акыркы ийгиликтүү кадамды көрсөтөт. Сервердин протокол баннери келсе, TCP иштеп жатат жана алыскы тарап тирүү; ачык суроо — бир конкреттүү пакетке эмне болду. Баннерден кийинки бир мүнөттүк үнсүздүк жол маселесине окшошот. Дал келүүчү ачкыч алмашуу ыкмасы жоктугу тууралуу билдирүү саясат маселеси. Сервер сессияны жабуу менен аяктаган узак күтүү сервер баш тартканын билдирет, ал эми анын журналы себебин түшүндүрөт.
Акыркы учурда кардарга тийүүдөн мурун сервердин аутентификация журналын окуңуз. Кардар сервер эч качан жөнөтпөгөн чечимди көрө албайт.
Эмне үчүн кичине жооп дагы эле өтө чоң болушу мүмкүн
Ачкыч алмашуу жооптору адатта абдан кичине, ошондуктан өлчөмдү күнөөлөө туура эмес угулат. Хост сертификаттары менен жооп кичине эмес, анткени ал сервердин сертификаттар чынжырын алып жүрөт. Бул аны сессиядагы туннелдин пайдалуу жүгүнөн ашып кетиши мүмкүн болгон биринчи пакет кылат. Жол MTU аныктоо кайтарым байланышы маршруттун бир жеринде жоголсо, жөнөтүүчү батпаган пакетти кайра-кайра жөнөтө берет, ал эми кардар ошол эле сапта түбөлүк күтөт.
Өлчөмдү болжолдоонун ордуна аныктаңыз. Туннелдин MTU-сун ip link show tun0 аркылуу окуңуз, анан бөлүктөргө бөлүнбөшү керек болгон сыноолорду жөнөтүңүз: ping -4 -M do -s 1352 host, кичирээк жүктөр менен кайталаңыз. Белгилүү өлчөмдө ийгиликсиздиктен ийгиликке өтүү далил; бирдей ийгиликсиздик ICMP чыпкаланып жатканын көрсөтөт жана сизге эч нерсе айтпайт.
Убактылуу төмөндөтүү теорияны тез ырастайт, ал эми туруктуу версия профилде же туннелди өткөрүп жаткан маршрутизатордогу MSS чектөөсү катары турат:
sudo ip link set dev tun0 mtu 1200
sudo iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Өлчөм маселесине окшош эки себеп
Кардар окуй албаган ачкыч файлы ушундай эле күтүүнү жаратат, толук чыгарылышта да эскертүүсүз. known_hosts-тун бир үлгүсү муну жеңилдетет: бир гана эсеп окуй алган CA ачык ачкычына көрсөткөн @cert-authority жазуусу. Файлга ээ болгон эсеп туташат, ал эми калган бардык эсептер илинип калат. Эгер ката хостту эмес, колдонуучуну ээрчисе, пакет өлчөмдөрүнөн мурун файл режимдерин текшериңиз.
Жаңыртуу эки тарап мурун бөлүшкөн алгоритмди да алып салышы мүмкүн. Сервер азыр да сунуш кылган бир ыкманы диагностика катары бекитиңиз: ssh -oKexAlgorithms=ecdh-sha2-nistp521 user@host. Дароо ийгиликтүү болгон байланыш жолдун тартибинде экенин далилдейт жана оңдоо эки тараптын сүйлөшүү саясатына таандык.
Жазып коюуга татыктуу үч факт
Ар кандай өзгөртүүдөн мурун жана кийин туннелдин MTU-сун, чоң файлдын көчүрмөсү кайталануучу өлчөмдө ийгиликсиз болобу жана ошол эле туннелдеги сертификатсыз хост да ушундай илинип калабы — буларды жазып коюңуз. Ошол үч байкоо өлчөмдү уруксаттардан жана сүйлөшүүлөрдөн буйруктардын үймөгүнөн тезирээк бөлөт.
Алар ошондой эле кийинки адамга эч качан өлчөмгө тиешеси болбогон кемчилик үчүн MTU-ны төмөндөтүүгө жол бербейт.
Эгер сүрөт дагы эле түшүнүксүз болсо, ошол эле туннелдин экинчи кардарынан сынап көрүңүз. Туташкан кардар кемчиликти жолдон биринчи машинанын конфигурациясына жылдырат.