สองคำสั่งสร้างคู่คีย์ WireGuard และทั้งคู่มาพร้อมเครื่องมือมาตรฐาน งานนี้จึงไม่ต้องใช้เว็บไซต์ที่เสนอสร้างคีย์ให้คุณ สิ่งที่พังไม่เคยเป็นการคำนวณเส้นโค้ง แต่เป็นบิตสิทธิ์ ตำแหน่งที่ไฟล์ไปลง และสิ่งที่ถูกส่งไปยังอีกฝั่งในภายหลัง ลำดับด้านล่างเริ่มในไดเรกทอรีว่างและจบที่ peer ที่รับส่งข้อมูล อ่านสักครั้งก่อนรัน เพราะบรรทัดแรกมีความหมายก็ต่อเมื่อบรรทัดถัดไปรันในเชลล์เดียวกัน

สร้างคู่คีย์ในเชลล์เดียว

ขั้นตอนที่บันทึกไว้จำกัดการสร้างไฟล์ก่อนที่ค่าส่วนตัวจะมีอยู่ จากนั้นจึงคำนวณค่าสาธารณะจากค่านั้น ทั้งสามบรรทัดอยู่ด้วยกันในเซสชันเชลล์เดียว:

umask 077  # applies to files created next, so keep the next line in this shell
wg genkey | tee privatekey | wg pubkey > publickey
wg pubkey < privatekey  # re-derive and compare with publickey

wg genkey เขียนคีย์ส่วนตัว Curve25519 ขนาด 32 ไบต์ในรูปแบบ base64; wg pubkey อ่านค่านั้นและคำนวณคีย์สาธารณะที่ตรงกัน และ tee บันทึกค่าส่วนตัวพร้อมส่งต่อไปตามท่อ ลำดับนี้คือเหตุผลที่บรรทัดสิทธิ์มาอยู่ก่อน และเป็นเหตุผลที่การวางท่อในเทอร์มินัลที่สองทำให้สูญเสียไปอย่างเงียบ ๆ ชื่อไฟล์เป็นเพียงตัวอย่าง สิ่งสำคัญคือไฟล์ทั้งสองไปอยู่ในที่ที่อุปกรณ์เจ้าของควบคุมได้ หากไฟล์ส่วนตัวมีอยู่แล้วด้วยสิทธิ์เริ่มต้น chmod 600 privatekey จะแก้ไฟล์ปัจจุบันและไม่ทำอะไรกับสำเนาที่ทำไว้ก่อนหน้า

เก็บครึ่งส่วนตัวไว้ในอุปกรณ์เดียว

ค่าส่วนตัวเป็นของเครื่องที่จะเป็นเจ้าของตัวตน อยู่ในไดเรกทอรีที่เครื่องนั้นปกป้องและที่สำเนาสำรองของเครื่องถือเป็นข้อมูลรับรอง ไม่ควรอยู่ในโฟลเดอร์ที่แชร์ ในข้อความถึงตัวเอง หรือในตัวอย่างที่แนบกับตั๋วขอความช่วยเหลือ และสำเนาที่ฝังอยู่ทำให้ไฟล์กำหนดค่าอ่อนไหวพอ ๆ กับคีย์ คีย์ที่เคยอยู่ในสามที่ไม่อาจย้อนคิดได้ในภายหลัง และนี่คือเหตุผลเชิงปฏิบัติที่จะเก็บไว้ที่เดียว

การทำลายไฟล์ที่เลิกใช้อย่างตั้งใจเป็นส่วนหนึ่งของนิสัยเดียวกัน การปล่อยไว้ในโฟลเดอร์ดาวน์โหลดจนมีคนสังเกตไม่ใช่

สิ่งที่ผู้ดูแลฝั่ง peer ต้องการจากคุณ

อีกฝั่งต้องการค่าสาธารณะและรูปแบบที่อยู่ที่ผู้ดูแลเลือกไว้เท่านั้น ส่งสตริงสาธารณะนั้นผ่านช่องทางที่ผู้ดูแลคาดไว้ จากนั้นยืนยันว่าแนบไปกับรายการ peer รายการใดก่อนที่ใครจะทดสอบ เพราะคีย์ที่ถูกต้องในส่วนที่ผิดจะล้มเหลวในลักษณะที่ดูเหมือนปัญหาคีย์ ส่งเป็นบรรทัดเดียวไม่ตัดขึ้นบรรทัดใหม่ เพราะคีย์ที่ขาดเป็นสองบรรทัดจะถูกวางในไฟล์กำหนดค่าโดยไม่มีข้อทักท้วง แล้วจะไม่ตรงกันอีกเลย

การสร้างคีย์ไม่ได้ให้สิทธิ์ใด ๆ ด้วยตัวเอง peer ต้องถูกกำหนดค่าให้ยอมรับคีย์นั้น และขั้นตอนการกำหนดค่าเป็นของผู้ที่ดูแลฝั่งนั้น

ทดสอบคู่คีย์ด้วยการแลกเปลี่ยนจริง

คู่คีย์ระบุปลายหนึ่งของ tunnel; มันไม่ได้สร้างเส้นทาง รายการตัวแปลงชื่อ กฎส่งต่อ หรือสิทธิ์ไฟร์วอลล์ใด ๆ เมื่อ peer ถูกจัดเตรียมแล้ว ให้ทดสอบการแลกเปลี่ยนไม่ใช่ไฟล์ ได้แก่ การจับมือที่ปรากฏใน wg show ที่อยู่ที่ตอบกลับภายใน tunnel และคำขอของแอปพลิเคชันหนึ่งรายการที่ขึ้นกับเส้นทาง สามสิ่งนี้แยกคีย์ที่ผิดออกจากคีย์ที่ถูกและเส้นทางที่ขาดหาย

เก็บหนึ่งตัวตนต่ออุปกรณ์เมื่อการติดตั้งเอื้ออำนวย เพื่อให้หน่วยที่หายไปถูกเพิกถอนได้เองแทนที่จะบังคับให้ทุกคนสร้างคีย์ใหม่ การตัดสินใจนี้ยังทำให้ขั้นตอนการแทนที่ด้านล่างปลอดภัยต่อการรัน

แทนที่คีย์โดยไม่ให้มีช่องว่าง

สร้างคีย์แทนบนอุปกรณ์ เพิ่มคีย์สาธารณะใหม่เป็น peer เพิ่มเติม ยืนยันว่ามันรับส่งข้อมูลได้ แล้วจึงนำคีย์เก่าออก การทำตามลำดับนี้หมายความว่า tunnel ไม่มีช่วงเวลาที่ไม่มีตัวตนที่ใช้ได้ และการย้อนกลับก็เพียงลบรายการที่เพิ่งเพิ่มเข้าไป

เก็บไฟล์ส่วนตัวที่ถูกแทนที่ไว้จนกว่า peer ใหม่จะได้รับการยืนยัน แล้วจึงทำลายอย่างตั้งใจ คู่มือเริ่มต้นอย่างรวดเร็วของ WireGuard เป็นเอกสารอ้างอิงของคำสั่งเอง และสั้นพอที่จะอ่านทั้งหมดก่อนเริ่ม

บทความที่เกี่ยวข้อง