คีย์ SSH
คีย์ SSH ช่วยให้คุณลงชื่อเข้าใช้เซิร์ฟเวอร์ได้โดยไม่ต้องใช้รหัสผ่าน คู่คีย์ประกอบด้วยคีย์ส่วนตัว (private key) ซึ่งจะเก็บไว้ในคอมพิวเตอร์ของคุณ และคีย์สาธารณะ (public key) ซึ่งจะถูกคัดลอกไปยังไฟล์ ~/.ssh/authorized_keys บนเซิร์ฟเวอร์ คีย์จะถูกสร้างขึ้นด้วย ssh-keygen ซึ่งเป็นส่วนหนึ่งของ OpenSSH
1ประเภทของคีย์
คีย์ Ed25519 มีความสั้น รวดเร็ว และรองรับโดย OpenSSH เวอร์ชันปัจจุบันทั้งหมด โดยใช้คำสั่ง ssh-keygen -t ed25519 ในการสร้าง ส่วนคีย์ RSA ยังคงได้รับการสนับสนุนสำหรับระบบรุ่นเก่าและควรมีความยาวอย่างน้อย 3072 บิต
2รหัสผ่าน (Passphrase) และเอเจนต์
รหัสผ่าน (Passphrase) จะทำหน้าที่เข้ารหัสคีย์ส่วนตัวที่เก็บอยู่ในดิสก์ เพื่อป้องกันไม่ให้ไฟล์ที่ถูกขโมยไปสามารถนำไปใช้งานได้โดยลำพัง โดย ssh-agent จะเก็บคีย์ที่ปลดล็อกแล้วไว้ในหน่วยความจำ ทำให้คุณต้องพิมพ์รหัสผ่านเพียงครั้งเดียวต่อหนึ่งเซสชัน
3สิทธิ์การเข้าถึง
OpenSSH จะปฏิเสธการใช้งานคีย์หากไฟล์มีการตั้งค่าสิทธิ์เปิดกว้างเกินไป คีย์ส่วนตัวควรอนุญาตให้อ่านได้เฉพาะเจ้าของเท่านั้น (600) และไดเรกทอรี ~/.ssh รวมถึงไฟล์ authorized_keys บนเซิร์ฟเวอร์จะต้องไม่เปิดให้ผู้อื่นเขียนข้อมูลได้
วิธีการตั้งค่าการลงชื่อเข้าใช้ด้วยคีย์
- สร้างคีย์บนคอมพิวเตอร์ของคุณ:
ssh-keygen -t ed25519 - ยอมรับไฟล์เริ่มต้นและพิมพ์รหัสผ่าน (Passphrase)
- คัดลอกคีย์สาธารณะไปยังเซิร์ฟเวอร์:
ssh-copy-id user@server - ลงชื่อเข้าใช้เพื่อทดสอบ:
ssh user@server - หลังจากที่คีย์ใช้งานได้แล้ว ให้พิจารณาปิดการลงชื่อเข้าใช้ด้วยรหัสผ่านบนเซิร์ฟเวอร์
ข้อควรระวัง
- ห้ามแชร์หรืออัปโหลดคีย์ส่วนตัว (ไฟล์ที่ไม่มีนามสกุล .pub) โดยเด็ดขาด
- ทดสอบการลงชื่อเข้าใช้ด้วยคีย์ในเซสชันที่สองก่อนที่จะปิดการยืนยันตัวตนด้วยรหัสผ่าน มิฉะนั้นคุณอาจไม่สามารถเข้าสู่ระบบได้อีก
บทความที่เกี่ยวข้อง
- สิทธิ์การเข้าถึงไฟล์: chmod และ chownวิธีการทำงานของสิทธิ์การอ่าน การเขียน และการเรียกใช้งานบน Linux ความหมายของ 755 และ 644 รวมถึงวิธีการเปลี่ยนเจ้าของและโหมดอย่างปลอดภัย
- UFW (Uncomplicated Firewall)วิธีที่ UFW จัดการไฟร์วอลล์บน Linux ใน Ubuntu วิธีอนุญาต SSH ก่อนเปิดใช้งาน และวิธีแสดงรายการและลบกฎ
- rsyncวิธีการที่ rsync ใช้คัดลอกและซิงโครไนซ์ไฟล์ ความแตกต่างเมื่อใส่เครื่องหมายทับปิดท้าย และวิธีการทดสอบด้วย --dry-run ก่อนใช้งาน --delete
แหล่งอ้างอิง
- หน้าคู่มือ ssh-keygen(1) (OpenBSD) man.openbsd.org
- หน้าคู่มือ sshd(8), รูปแบบไฟล์ AUTHORIZED_KEYS (OpenBSD) man.openbsd.org
ตรวจสอบล่าสุด: