Прыватны ключ тут, публічны ключ там: ключы WireGuard
Ваш прыватны ключ застаецца на прыладзе; запіс суразмоўцы захоўвае публічны ключ другой стараны. Дзяліцеся толькі публічнай паловай і давайце кожнай прыладзе ўласную ідэнтычнасць.
Большасць памылак у самастойна сабраным WireGuard зводзіцца да таго, які ключ куды патрапіў. Раздзел інтэрфейса змяшчае прыватны ключ прылады, якую вы наладжваеце, а раздзел суразмоўцы — публічны ключ машыны на другім канцы. Калі памяняць гэтыя паловы або ўставіць не тую, атрымаецца handshake, які ніколі не завяршаецца, і журнал, які ніколі не называе ключ. Выканайце чатыры праверкі ніжэй па чарзе, перш чым чапаць AllowedIPs або DNS.
Два ключы, два кірункі
Прыватны ключ належыць роўна адной прыладзе і застаецца ў раздзеле інтэрфейса гэтай прылады. Яго публічная палова — тое, што патрэбна кожнаму іншаму суразмоўцу, каб пазнаць прыладу, і інструменты выводзяць яе, а не выдумляюць. На серверы публічны ключ вашай прылады выглядае як запіс суразмоўцы, а на вашай прыладзе гэтую ролю займае публічны ключ сервера. Чытанне канфігурацыі ўголас у такіх тэрмінах ловіць большасць блытанін яшчэ да handshake.
Каманда wg друкуе тое, што лакальны інтэрфейс фактычна выкарыстоўвае, уключна з абодвума публічнымі ключамі. Гэта робіць яе самым хуткім спосабам аддзяліць памылку канфігурацыі ад праблемы злучэння:
wg show
wg show interfaces
Першы вывад пералічвае кожнага суразмоўцу з яго публічным ключом, канцавым пунктам, які ён выкарыстоўваў апошнім, і узростам апошняга handshake. Узрост handshake «ніколі» з аднаго боку і нядаўні з другога паказвае на ключ, які прыняў толькі адзін канец. Другая каманда называе інтэрфейсы, якія можна даследаваць далей.
Што перадаваць і што ніколі не перадаваць
Публічны ключ прызначаны для перадачы, хоць ён усё яшчэ ідэнтыфікуе сувязь прылад, таму адправіць яго адміністратару, які папрасіў, — не тое самае, што апублікаваць. Прыватны ключ ніколі не пакідае прыладу, якая яго стварыла. Экспартаваны профіль або QR-код змяшчае ўсю канфігурацыю разам з гэтым прыватным ключом, таму ні адзін з іх не бяспечна перадаваць, і хаванне тэксту ў выяве нічога не змяняе. Папярэдне агульныя ключы неабавязковыя і гэтак жа сакрэтныя, і абодва канцы павінны мець аднолькавае значэнне, інакш handshake спыняецца на гэтым этапе.
Яшчэ адно адрозненне варта сказаць проста: канцавы пункт — гэта адрас і порт, ніколі не ключ. Устаўка публічнага ключа ў поле канцавога пункта або адраса ў поле ключа стварае профіль, які разбіраецца, а потым нічога не робіць. Інструменты гэтага не зловяць, бо абодва палі — проста радкі. Хуткі старт WireGuard паказвае канвеер генерацыі і вываду ў адзін радок.
Адна прылада, адзін запіс суразмоўцы
Там, дзе служба гэта дазваляе, кожная прылада павінна мець уласную ідэнтычнасць суразмоўцы. Устаўка поўнага профілю ноўтбука ў тэлефон размывае, якая прылада трымае гэтую ідэнтычнасць на серверы, і робіць адкліканне аднаго згубленага тэлефона цяжэйшым. Калі прыватны ключ уцякае, выдаліце старое разрозненне суразмоўцы на серверы і падрыхтуйце замену. Выдаленне лакальнага файла не выдаляе запіс сервера, і новы кліенцкі ключ нікому не дапаможа, пакуль сервер не ведае яго публічную палову.
Трымайце адпаведнасць прылады і публічнага ключа побач са спісам адрасоў. Менавіта гэты спіс ператварае адкліканне ў двуххвілінную задачу замест цэлага паўдня.
Што ўсё яшчэ ламаецца пасля handshake
Пары ключоў ідэнтыфікуюць суразмоўцаў; яны не вырашаюць сеткавыя паводзіны. AllowedIPs звязвае дыяпазоны адрасоў з суразмоўцам, а маршрутамі вакол гэтага кіруе кліент або інструмент наладкі. Сімптом звычайна кажа, які пласт адкрываць далей:
| What you see | Which key problem it usually means | Where to look first |
|---|---|---|
| Handshake age stays at never on both ends | Peer public key missing, or an endpoint pointing at nothing | wg show, then the endpoint value |
| Handshake completes on one side only | The two ends hold different public keys for each other | wg show on both hosts |
| Handshake works, then no traffic | AllowedIPs or routes rather than keys | wg show and the route table |
| Worked until a key was regenerated | The peer entry still holds the old public key | Compare both public keys, then update the peer |
DNS можа адмовіць пасля таго, як абодва бакі правільна аўтэнтыфікуюцца, а праграма можа зламацца, калі сам тунель здаровы, таму працоўны handshake — не канец дыягностыкі. Ключы таксама нічога не кажуць пра практыку аператара па лагаванні ці пра тое, ці пазнае сайт ваш уліковы запіс, і гэтыя пытанні належаць у іншае месца. Пераходзьце да сеткавых пластоў, калі чатыры праверкі пройдзены, бо адсутны ключ — не замаскіраваная праблема маршрутызацыі.