Гэта працуе на офісным Wi-Fi і не працуе праз кропку доступу тэлефона, прычым VPN уключаны ў абодвух выпадках. Git вяртае 403, і памылка займае тры радкі. Спакуса — лічыць кропку доступу прычынай і мяняць налады сеткі, пакуль нешта не зрушыцца. HTTP 403 азначае, што сервер зразумеў запыт і адмовіў у ім, таму карыснае пытанне — які менавіта сервер, а карысны наступны крок — параўнанне, якое змяняе адну рэч за раз.

Спачатку прачытайце статус, потым сетку

403 — гэта не няўдалы пошук, не таймаўт TCP і не незавершанае рукапацісканне TLS. Гэта рашэнне, прынятае тым, хто разабраў ваш запыт.

Пакуль вы не ведаеце, што прыняло гэтае рашэнне, кожнае змяненне сеткі — здагадка з праўдападобнай гісторыяй.

Хто можа адказаць кодам 403?

Прыкладанне рэпазіторыя — толькі адзін кандыдат. Проксі, шлюз або служба фільтрацыі могуць стаяць перад ім і адказаць першымі, а кліент у абодвух выпадках бачыць той самы статус. Захавайце статус, патрэбныя загалоўкі і ачышчанае цела памылкі, затым суаднясіце іх з журналамі аўтарызаванай службы. Адрас URL і канцавая кропка, да якой вы фактычна дайшлі, таксама могуць розніцца праз DNS або налады проксі, таму праверце наладжаны адрас і працэс, які робіць запыт.

Калі адмова не дасягнула рэпазіторыя, яго журналы будуць маўчаць, і гэтае маўчанне — доказ.

Параўноўвайце адну зменную за раз

Параўнанне з кропкай доступу карыснае, бо звужвае праблему, а не таму, што даказвае прычыну. Дзве сеткі могуць адначасова розніцца ў адрасацыі, сямействе IP, проксі, узгадненні TLS і палітыцы выхаду.

Змяняйце адну рэч за спробу і запісвайце астатняе. Табліца ніжэй — мінімум, які я трымаю ў нататцы, робячы гэта:

Keep constantRecord when it changes
Repository, operation and credentialsResolved address and IP family
Git process and configurationProxy use and the responding component
Intended VPN profileActual route and exit seen by the service

Адзін радок, які розніцца паміж працоўным і няўдалым запускам, — гэта тое, куды пойдзе наступная гадзіна.

Абысці — гэта доказ, а не тлумачэнне

Прымусовае выкарыстанне іншага сямейства адрасоў можа змяніць пункт прызначэння, маршрут або пасярэдніка, які выбіраецца, таму вынік можа змяніцца без доказу таго, што IPv6 несумяшчальны з рэпазіторыем. Іншая ўзгодненая версія TLS — назіранне з той жа катэгорыі. Ні тое, ні іншае не апраўдвае адключэння праверкі сертыфікатаў або аслаблення злучэння. Ідзіце па палітыцы і журналах кампанента, які адмовіў, да сапраўднага рашэння, а не спыняйцеся на першым змяненні, якое спрацавала.

Тое, што вы не можаце патлумачыць, зноў праваліцца ў іншым месцы.

Напішыце справаздачу, якую выправяць

Дайце ўладальніку таго, хто адказаў, тую самую аперацыю, два шляхі і кампанент, які сказаў не. Перад тым як нечае падзяліць, выдаліце загалоўкі аўтарызацыі, убудаваныя ўліковыя дадзеныя і прыватныя дэталі рэпазіторыя.

Карысная справаздача — кароткая, узнаўляльная і называе ўзровень, а не сімптом.

Праверка, якую я раблю па парадку

Пацвердзіце адрас URL і вызначаную канцавую кропку, затым зафіксуйце статус і загалоўкі з няўдалага запуску. Паўтарыце тую самую аперацыю ў другой сетцы і параўнайце два запісы.

Затым аднясіце гэтую розніцу да кампанента, які адказаў:

  • Налады проксі на кліенце і ў сетцы.
  • Палітыка выхаду або фільтрацыя перад рэпазіторыем.
  • Абсяг токена або ўліковага запісу, уключаючы тэрмін дзеяння і ўмовы SSO.
  • Дазвол рэпазіторыя для асобы, якую прадстаўляе токен.

Сама семантыка статусу ёсць у RFC 9110, і яе варта цытаваць, калі пішаце справаздачу.

Падобныя артыкулы