WireGuard özel anahtarın uzunluğunun yanlış olduğunu söylüyor: şimdi ne yapmalı?
32 baytlık bir anahtar base64'te 44 karakterdir. Herhangi bir şeyi yeniden üretmeden önce metnin mi bozuk yoksa kimliğin mi yanlış olduğuna karar verin.
Mesaj, özel anahtarın uzunluğunun yanlış olduğunu söylüyor ve bu ifade önce kodlamaya, ancak ondan sonra kriptografiye işaret ediyor. WireGuard anahtarları 32 baytı base64 olarak kodlar, bu da sondaki dolguyla birlikte 44 karakter verir, dolayısıyla başka boyutta bir değer ne kadar rastgele görünürse görünsün anahtar değildir. Dizgeyi ayrıştırıcı kabul edene kadar doldurmak, hiçbir eşin asla tanımayacağı düzgün biçimli bir değer üretir.
Bu hatanın arkasında iki farklı iş saklıdır: geçerli bir anahtarın metnini onarmak ve artık elinizde olmayan bir kimliği değiştirmek. Sonuçları farklıdır ve biri diğer ucu geçersiz kılar.
Ayrıştırıcı ne bekler
Bir WireGuard anahtarı, base64'te standart dolgulu 32 bayt anahtar malzemesidir ve 44 karakterlik sabit bir dizge verir. Araçlar tam olarak 32 bayta çözülmeyen her şeyi reddeder, çünkü altta yatan eğri 32 baytlık bir skaler alır ve başka bir şey almaz. Genel ve özel değerler aynı kodlamayı kullanır, bu yüzden ayrıştırıcı yalnızca biçimden hangisini yapıştırdığınızı söyleyemez. Bu belirsizlik, bu hatanın etrafındaki karışıklığın yarısına neden olur.
wg genkey | tee private.key | wg pubkey > public.key
base64 -d private.key | wc -c
wc -c private.key
wg show wg0 public-key
Değeriniz 32 bayta çözülüyorsa uzunluk doğrudur ve şikayet dosyanın başka bir yerinden gelir. Daha kısa bir şeye çözülüyorsa kesilmiş malzemeniz vardır, biçimlendirme sorunu değil.
Biçimlendirme hasarı mı yoksa yanlış malzeme mi?
Biçimlendirme hasarları kenarlarda birikir: bir kabuğun eklediği tırnak işaretleri, değerle birlikte kopyalanan private_key gibi bir etiket, bir sohbet istemcisinin eklediği satır sonu veya yapıştırmadan sağ kalan sondaki boşluk. Bunların her biri baytları değiştirmeden dizgeyi değiştirir, dolayısıyla kaldırılması özgün kimliği geri getirir. Ayrıştırıcı susana kadar noktalama işaretlerini silmek yerine dosyayı sağlama kaydıyla karakter karakter karşılaştırın.
Yanlış malzeme başka bir durumdur. Bir parola, bir sertifika anahtarı veya bir genel değer inandırıcı görünebilir ve yanlış boyuta çözülebilir. Hiçbir temizlik bunlardan hiçbirini eşin beklediği skalare dönüştürmez. Bu durum düzenleme değil yeni bir kimlik gerektirir.
Özel alanda genel bir anahtar
En yaygın karışıklık, genel bir değerin özel alana yapıştırılması ya da bunun tersidir. İkisi de 32 baytlık geçerli base64'tür, bu yüzden uzunluk denetimi geçer ve el sıkışma daha sonra yararlı bir mesaj olmadan başarısız olur. Özel anahtar, genel anahtarı üreten skalerdir, bu yüzden genel değeri türetip eşin yetkilendirdiğiyle karşılaştırarak karar verebilirsiniz. Türetilen değer kayıtla eşleşmiyorsa elinizde yanlış kimlik vardır, yazım hatası değil.
İstemcinin özel anahtarını diğer uçtaki yetkili genel anahtarı güncellemeden değiştirmek aynı uyuşmazlığı yeniden yaratır, üstelik istemcinin kendi dosyası artık kendi içinde tutarlı görünür. İki ucu tek bir işlemde değiştirin, yoksa bir sonraki kişi yanlış yarıyı ayıklar.
Profili onarın, sonra el sıkışmayı kanıtlayın
Anahtar doğru boyuta çözüldüğünde ve yetkili çiftle eşleştiğinde geriye profil ve yol kalır. Aşağıdaki komutlar gerektiğinde yeni bir çift üretir, var olan bir anahtarın çözülmüş boyutunu doğrular ve arayüzün gerçekte kullandığı genel değeri okur. Özel bir değeri asla bir bilete veya çözme sitesine yapıştırmayın.
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
Boyut denetimi malzemenin anahtar biçiminde olup olmadığını yanıtlar, yol sorgusu ise bir paketin arayüze hiç ulaşıp ulaşmayacağını yanıtlar. Her iki denetim geçtikten sonra boş kalan el sıkışma satırı tanıyı eşin uç noktasına ve izin verilen adreslere taşır. Arayüzün genel anahtarını sağlama kaydına karşı son bir kez okuyun, çünkü eski kaydedilmiş bir profil doğru görünebilir ama etkin olan farklı olabilir].
Hangi değeri değiştirdiğinizi ve yetkili kopyanın nerede olduğunu not edin. Bu eşe bir sonraki dokunan kişi hangi ucun değiştiğini bilmelidir.