🧑💻 เมื่อ OpenSSH เลิกรองรับกุญแจล็อกอินแบบ ssh-rsa เราจะใช้ Key โพรโทคอลอะไรสำหรับ Secure Shell (SSH) และ SFTP ??
การเชื่อมต่อแบบ Secure Shell (SSH) ซึ่งเป็นโปรโตคอลเครือข่ายที่เป็นการถ่ายโอนข้อมูลอย่างปลอดภัย ไม่ว่าจะเป็น…
ssh เข้าถึงเครื่องเซิร์ฟเวอร์ปลายทาง
หรือ scp, sftp เป็นต้น
SSH ฝั่งเซิร์ฟเวอร์จะตรวจสอบสิทธิ์ของเครื่องไคลเอ็นต์ ว่าคีย์ส่วนตัวที่อยู่บนเครื่องคอมพิวเตอร์ไคลเอ็นต์และคีย์สาธารณะที่เซิร์ฟเวอร์ มีคีย์ทั้ง 2 คีย์เพื่อให้คอมพิวเตอร์เชื่อมต่อกันได้หรือไม่
ถ้ามีเครื่องไคลเอ็นต์ก็จะสามารถเชื่อมต่อเข้าเซิร์ฟเวอร์ได้โดยไม่ต้องถามรหัสผ่าน ซึ่งก็เป็นวิธีที่นิยมกันมากที่สุดในปัจจุบัน ซึ่งเป็นวิธีการล็อกอินด้วย Key Authentication (ไม่ใช่รหัสผ่าน)
วิธีการก็คือ…
เราสร้าง Key Pair ที่เครื่องไคลเอ็นต์ (เครื่องของผู้ใช้งาน)
เปิดหน้าต่างเทอร์มินัล พิมพ์คำสั่ง ssh-keygen
จะเป็นการสร้าง Key Pair เพื่อจะได้ Public Key และ Private Key ซึ่ง default ค่าเริ่มต้นมันใช้ Key โพรโทคอล RSA (RSA Version 2 มีขนาด 1024 บิต)
(มาจากคำสั่ง ssh-keygen)
ssh-keygen
default คือออปชัน -t rsa
จากนั้นเราก็ส่งไฟล์คีย์สาธารณะ id_rsa.pub
ไปยังเซิร์ฟเวอร์ของเรา หรือผู้ให้บริการ เช่น GCP, AWS หรือพาร์ทเนอร์ของคุณเพื่อเข้าถึงเซิร์ฟเวอร์คุณ
ซึ่งไฟล์ id_rsa และ id_rsa.pub จะอยู่ในไดเรกทอรี
home/<ผู้ใช้>/.ssh
หรือสิทธิ์ root ก็
/root/.ssh/
คำถามคือ เมื่อ OpenSSH เลิกสนับสนุน Key โพรโทคอล RSA
เราจะใช้ Key โพรโทคอลอะไรแทน RSA
ไม่ว่าจะเป็น Ansible, Google Cloud, Amazon AWS ล้วนใช้ SSH หรืออนาคตจะไม่มี password และ Key Authentication ?!
SSH key types
☑️ RSA (only for keys with more than 2048 bits)
☑️ ECDSA
☑️ ED25519
ECDS หรือ ED25519 คร้าบบ ???
ร่วมเติมคำในช่องว่างคร้าบบ 😀
ssh-keygen -t [KEY_TYPE]