ทำความเข้าใจง่ายๆ กับการ login ssh ด้วย key

A

เริ่มต้นสร้างกุญแจ

ด้วยคำสั่ง ssh-keygen ขั้นตอนนี้จะมีคำถามว่า เราจะใส่รหัสผ่านกุญแจ รึเปล่า ว่าง่ายๆ คือ เราอยากจะสร้างกุญแจเข้า ssh (โดยไม่ต้องใส่รหัสผ่าน) แต่ก็กลัวกุญแจที่ว่าโดนขโมย เราก็เลยต้องใส่รหัสผ่าน อีกที ก็ถ้าใส่ก็ใส่ ไม่ใส่ก็กด enter ผ่านได้เลยครับ

พอสั่งแล้ว จะได้หน้าตาประมาณนี้ครับ

~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:....
The key's randomart image is:
+---[RSA 2048]----+
|    oBo++Booo    |
|    +.X = +=     |
|oo = B O oo o    |
|+.= = + *  o     |
| ...o. BS .      |
|   o ++..  E     |
|    o ..         |
|                 |
|                 |
+----[SHA256]-----+

จุดสำคัญของเรื่องนี้ครับ พอเสร็จขั้นตอนข้างบนนี้แล้ว มันจะได้ไฟล์ 2 ไฟล์ คือ id_rsa (private key) กับ id_rsa.pub (public key)

ดังนั้น ถ้าใครได้ไฟล์ private key ที่ไม่ได้ปกป้องด้วยรหัสไป เค้าก็เอาไปเข้า remote server ที่เราผูก public key ได้เลยนะครับ ต้องระวังด้วย

ส่งไปสร้างแม่กุญแจ

ขั้นถัดมา ก็ง่ายๆ คือตอนนี้เรามี ลูกกุญแจ (private key) กับแม่กุญแจ (public key) แล้ว เราก็ส่งแม่กุญแจไปที่ remote server ปลายทาง ที่เราอยากจะ login ด้วยคำสั่งนี้ครับ

ssh-copy-id -i ~/.ssh/id_rsa.pub user@yourserver

ขั้นตอนนี้ ก็จะให้เราใส่ รหัสผ่าน server ปลายทาง พอใส่เรียบร้อย ก็เสร็จขั้นตอน

ลองไขกุญแจ

จากนั้นเราก็ลองใช้ กุญแจเรา login ดู แบบนี้

ssh user@yourserver

ถ้าถูกต้อง มันก็ใช้งานได้ เลยจบงาน

ทีนี้ ถ้าเราอยากเอากุญแจนี้ไปใช้ที่อื่น ทำไง , ง่ายๆ นิดเดียวครับ copy ไฟล์ id_rsa ออกมาเลย แล้วเอาไปใช้ด้วยคำสั่งนี้

ssh -i /path/to/is_rsa_file user@yourserver

จบขั้นตอน

INFO
Beta Version v20.12.15 : ขออภัยเว็บกำลังก่อสร้าง (อีกแล้ว) แต่คราวนี้กำลังสร้างจริงจังละ