WireGuard이 개인 키 길이가 잘못됐다고 알립니다: 이제 어떻게 할까요?
32바이트 키는 base64에서 44자입니다. 무엇이든 다시 만들기 전에 텍스트가 손상됐는지 신원이 잘못됐는지 판단하세요.
메시지는 개인 키의 길이가 잘못됐다고 말하며, 그 표현은 암호학보다 인코딩을 먼저 가리킵니다. WireGuard 키는 32바이트를 base64로 인코딩하므로 끝 패딩을 포함해 44자가 되며, 따라서 다른 크기의 값은 아무리 무작위로 보여도 키가 아닙니다. 파서가 받아들일 때까지 문자열을 채우면 어떤 피어도 알아보지 못할 잘 갖춰진 값이 만들어집니다.
이 오류 뒤에는 유효한 키의 텍스트를 고치는 일과 더 이상 보유하지 않은 신원을 교체하는 두 가지 다른 작업이 숨어 있습니다. 결과가 다르며, 하나는 다른 쪽 끝을 무효로 만듭니다.
파서가 기대하는 것
WireGuard 키는 base64로 표현한 32바이트 키 자료이며 표준 패딩으로 44자 고정 문자열이 됩니다. 도구는 기반 곡선이 32바이트 스칼라만 받기 때문에 정확히 32바이트로 디코드되지 않는 모든 것을 거부합니다. 공개 값과 개인 값은 같은 인코딩을 쓰므로 파서는 형식만으로 어느 것을 붙여 넣었는지 알 수 없습니다. 이 모호함이 이 오류를 둘러싼 혼란의 절반을 만듭니다.
wg genkey | tee private.key | wg pubkey > public.key
base64 -d private.key | wc -c
wc -c private.key
wg show wg0 public-key
값이 32바이트로 디코드되면 길이는 맞고 불만은 파일의 다른 곳에서 옵니다. 더 짧은 것으로 디코드되면 잘린 자료이며 형식 문제가 아닙니다.
형식 손상인가, 잘못된 자료인가?
형식 손상은 가장자리에 몰리기 마련이며, 셸이 더한 따옴표, 값과 함께 복사된 private_key 같은 레이블, 채팅 클라이언트가 넣은 줄바꿈, 붙여넣기에서 살아남은 끝 공백이 전형입니다. 이런 변경은 바이트를 바꾸지 않고 문자열만 바꾸므로 제거하면 원래 신원이 복원됩니다. 파서가 조용해질 때까지 구두점을 지우는 대신 파일을 프로비저닝 기록과 한 글자씩 비교하세요.
잘못된 자료는 다른 상황입니다. 비밀번호, 인증서 키, 공개 값은 모두 그럴듯해 보이고 잘못된 크기로 디코드될 수 있습니다. 어떤 정리로도 그것들을 피어가 기대하는 스칼라로 만들 수 없습니다. 그 경우에는 편집이 아니라 새 신원이 필요합니다.
개인 필드에 들어간 공개 키
가장 흔한 혼동은 공개 값을 개인 필드에 붙여 넣는 경우, 또는 그 반대입니다. 둘 다 32바이트의 유효한 base64이므로 길이 검사는 통과하고 핸드셰이크는 나중에 쓸모 있는 메시지 없이 실패합니다. 개인 키는 공개 키를 만드는 스칼라므로 공개 값을 도출해 피어가 승인한 값과 비교하면 판정할 수 있습니다. 도출한 값이 기록과 맞지 않으면 오타가 아니라 잘못된 신원을 들고 있는 것입니다.
클라이언트의 개인 키를 바꾸면서 반대편의 승인된 공개 키를 갱신하지 않으면 같은 불일치가 다시 생기고, 게다가 이제 클라이언트 자신의 파일은 스스로 일관돼 보입니다. 두 끝을 한 번에 바꾸지 않으면 다음 사람이 잘못된 절반을 디버그합니다.
프로필을 고친 뒤 핸드셰이크를 증명하세요
키가 올바른 크기로 디코드되고 승인된 쌍과 일치하면 남은 작업은 프로필과 경로입니다. 아래 명령은 필요할 때 새 쌍을 만들고, 기존 키의 디코드된 크기를 검증하며, 인터페이스가 실제로 쓰는 공개 값을 읽습니다. 개인 값을 티켓이나 디코드 사이트에 절대 붙여 넣지 마세요.
wg genkey | tee new.key | wg pubkey > new.pub
base64 -d private.key | wc -c
ip route get 10.60.9.5
wg show wg0 latest-handshakes
크기 검사는 자료가 키 모양인지 답하고, 경로 질의는 패킷이 인터페이스에 도달하는지 답합니다. 두 검사를 통과한 뒤에도 핸드셰이크 줄이 비어 있으면 진단은 피어의 엔드포인트와 허용된 주소로 옮겨 갑니다. 저장된 오래된 프로필은 맞아 보여도 실제 활성 프로필은 다를 수 있]으므로 인터페이스의 공개 키를 프로비저닝 기록과 마지막으로 한 번 더 대조하세요.
어떤 값을 교체했고 승인된 사본이 어디에 있는지 기록하세요. 다음에 이 피어를 만지는 사람은 어느 쪽 끝이 바뀌었는지 알아야 합니다.