การตั้งค่า Public-Key Authentication สำหรับ SSH: คู่มือทีละขั้นตอน

การตรวจสอบด้วย Public-Key Authentication เป็นวิธีที่ปลอดภัยในการเข้าสู่เครื่องระยะไกลโดยไม่ต้องใช้รหัสผ่าน แทนที่จะป้อนรหัสผ่านสำหรับการตรวจสอบแต่ละครั้ง คุณจะใช้คู่ของคีย์เข้ารหัส: คีย์สาธารณะซึ่งจะอยู่บนเครื่องระยะไกล และคีย์ส่วนตัวซึ่งจะอยู่บนอุปกรณ์ท้องถิ่นของคุณ บล็อกโพสต์นี้จะนำคุณผ่านกระบวนการที่เรียบง่ายในการตั้งค่า Public-Key Authentication สำหรับ SSH บนระบบ Linux ของคุณ

ทำไมต้องใช้ Public-Key Authentication?

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

คำแนะนำทีละขั้นตอน

ขั้นตอนที่ 1: สร้างคีย์ของคุณ

เพื่อเริ่มต้น คุณต้องสร้างคู่คีย์ส่วนตัว-คีย์สาธารณะ เปิดเทอร์มินัลของคุณและรันคำสั่งต่อไปนี้:

ssh-keygen

คำสั่งนี้จะนำคุณผ่านกระบวนการสร้างคีย์ โดยค่าเริ่มต้นจะสร้างไฟล์สองไฟล์:

  • id_rsa: คีย์ส่วนตัวของคุณ (เก็บไว้อย่างปลอดภัย!)
  • id_rsa.pub: คีย์สาธารณะของคุณ (นี่คือคีย์ที่คุณจะแบ่งปัน)

ขั้นตอนที่ 2: คัดลอกคีย์สาธารณะไปยังเครื่องระยะไกล

ถัดไป ถึงเวลาที่จะถ่ายโอนคีย์สาธารณะของคุณไปยังเครื่องระยะไกล ซึ่งต้องการการเข้าถึงไปยังเซิร์ฟเวอร์ระยะไกลที่คุณต้องการล็อกอิน คุณต้องเพิ่มเนื้อหาของไฟล์ id_rsa.pub ลงในไฟล์ ~/.ssh/authorized_keys บนเซิร์ฟเวอร์ระยะไกล คุณสามารถทำได้อย่างมีประสิทธิภาพด้วยคำสั่งต่อไปนี้ (หลังจากเข้าสู่เครื่องระยะไกล):

echo "your-public-key" >> ~/.ssh/authorized_keys

หมายเหตุ: อย่าลืมแทนที่ “your-public-key” ด้วยเนื้อหาจริงจากไฟล์ id_rsa.pub ของคุณ

ขั้นตอนที่ 3: ตั้งค่าการเข้าถึงเพื่อความปลอดภัย

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

chmod 600 ~/.ssh/id_rsa*

และบนเครื่องระยะไกล ให้ตั้งค่าการเข้าถึงสำหรับไฟล์คีย์ที่อนุญาตตามนี้:

chmod 600 ~/.ssh/authorized_keys

คำสั่งเหล่านี้จะจำกัดการเข้าถึงคีย์ของคุณ เพื่อให้ผู้อื่นไม่สามารถอ่านได้

ขั้นตอนที่ 4: ทดสอบการตั้งค่าของคุณ

ตอนนี้คุณพร้อมที่จะทดสอบการตั้งค่าของคุณแล้ว! ใช้คำสั่ง SSH เพื่อติดต่อกับเครื่องระยะไกล:

ssh username@remote.machine

หากทุกอย่างถูกตั้งค่าอย่างถูกต้อง ระบบจะขอให้คุณป้อน passphrase สำหรับคีย์ส่วนตัวของคุณแทนการขอรหัสผ่านของผู้ใช้ระยะไกล

ขั้นตอนที่ 5: ใช้ SSH-Agent เพื่อความสะดวกสบาย

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

  1. เริ่มต้น ssh-agent โดยใช้คำสั่ง:

    eval $(ssh-agent)
    

    ตรวจสอบว่ามันกำลังทำงานอยู่แล้วโดยการใช้คำสั่ง:

    echo $SSH_AUTH_SOCK
    
  2. เพิ่มคีย์ส่วนตัวของคุณไปยังตัวแทนด้วย:

    ssh-add ~/.ssh/id_rsa
    

    หลังจากที่คุณป้อน passphrase ของคุณเพียงครั้งเดียว คุณจะไม่ต้องป้อนอีกจนกว่าคุณจะลบมันออกจากตัวแทน

  3. หากคุณต้องการล้างคีย์ของคุณออกจากตัวแทน ให้รันคำสั่งง่ายๆ:

    ssh-add -D
    

สรุป

การตั้งค่า Public-Key Authentication สำหรับ SSH เป็นวิธีที่มีประสิทธิภาพในการเพิ่มความปลอดภัยและประสิทธิภาพเมื่อเข้าถึงระบบระยะไกล โดยการทำตามขั้นตอนเหล่านี้ คุณสร้างสภาพแวดล้อมที่ปลอดภัยและปราศจากรหัสผ่านซึ่งสามารถช่วยประหยัดเวลาและลดความเสี่ยงที่เกี่ยวข้องกับการตรวจสอบด้วยรหัสผ่านแบบดั้งเดิม

ตอนนี้คุณสามารถเข้าสู่เครื่องระยะไกลของคุณได้อย่างมั่นใจและปลอดภัย! อย่าลังเลที่จะกลับมาที่คู่มือนี้เมื่อคุณตั้งค่า Public-Key Authentication บนอุปกรณ์ของคุณ