Tutorial

ทำให้ชีวิตง่ายขึ้นด้วย SSH Key

By Arnon Puitrakul - 13 December 2015 - 1 min read min(s)

ทำให้ชีวิตง่ายขึ้นด้วย SSH Key

วันนี้ เราจะมาดูกันว่า เราสามารถติดตั้ง SSH Key ลงบน Server ของเราได้อย่างไร ในตัวอย่างนี้ ผมจะติดตั้งมันลงไปใน Server ของเว็บนี้กัน

SSH Key คืออะไร ?

ถ้าเราถามว่า ปกติเวลาเรา Login เข้าไปที่ Server เราก็ต้องผ่านตัว SSH หรือ Secure Shell โดยการใช้ Password แต่ปัญหาคือ **ความปลอดภัย **เพราะว่า Password ถ้าเราอยากจะรู้ก็ไม่ยากแค่ Brute Force ก็ออกมาอย่างง่ายดาย ดั่งสายลงวิ่งผ่าน แต่ถ้าเป็น SSH Key ที่กำลังจะได้ดูวิธีการใช้งานกันวันนี้จะเห็นได้ว่า แทบไม่มีทางที่จะใช้แค่ Brute Force แล้วออกเลย เพราะว่า ตัว Key จะถูกแบ่งออกเป็น 2 อันคือ Public Key และ Private Key โดยเราสามารถนำ Public Key ไปวางในที่ที่เราต้องการที่เราจะเข้าถึง และเมื่อเรา Login ระบบ มันจะเอา Private Key ที่อยู่ในเครื่องเรา มาทำการเทียบกับ Public Key ที่เราใส่ไว้ใน Server (โดยมี Algorithm เฉพาะนะ) และถ้าตรงมันก็จะปลดล๊อคให้เราเข้าไปได้นั่นเอง
ในขั้นตอนที่กำลังจะทำให้อ่าน ต่อไปนี้ผมทำโดยผ่าน Terminal ของ OSX หรือถ้าใครใช้พวก Linux ก็สามารถทำผ่าน Terminal บนเครื่องตัวเองได้เช่นกันส่วน Windows ก็ลาก่อยนะครับ

Step 1 สร้าง RSA Key บนเครื่อง

ให้เราเข้าไปใน Terminal บนเครื่องของเรา และพิมพ์คำสั่งตามด้านล่าง เพื่อทำการสร้างกุญแจให้กับเครื่องของเรา

ssh-keygen -t rsa

หลังจากที่เรารันคำสั่งด้านบน มันจะมีถามว่าจะใช้ Save ไฟล์ Key ไว้ที่ไหน ถ้าต้องการเติม Path ของ Key ก็ให้เติมลงไปได้เลย แต่ถ้าไม่ก็กด Enter ได้เลย

Enter file in which to save the key (/home/demo/.ssh/id_rsa):

นอกจาก เราจะมี Key File เพื่อ Login แล้ว เราอาจจะเพิ่ม passphrase เข้าไปเพิ่มได้อีก

Enter passphrase (empty for no passphrase):

passphrase อารมณ์มันเหมือนเราไปเข้ารหัสตัว Key อีกครั้งด้วย passphrase มันเอาไว้ใช้ในสถานการณ์ประมาณว่า ถ้า Hacker ได้ Key File ของเราไป มันอาจจะช่วย เป็นการป้องกัน Hacker ใช้ Key File ของเราอีกชั้นหนึ่ง เพราะว่า ถ้าเราตั้ง passphrase เอาไว้ เวลาเราต้องการใช้ Key File มันจะถาม passphrase เสมอ ทำให้เรามั่นใจได้อีกขั้นนึงเลย
หลังจากที่เรา Config อะไรเรียบร้อยแล้ว มันก็จะแสดง Key ของเราขึ้นมา (อะไรประมาณนี้ แต่ล่ะเครื่องอาจจะแสดง Key ไม่เหมือนกัน ถ้าเหมือนกัน ก็บ้าแล้วล่ะ !!!!)

Your identification has been saved in /home/.ssh/id_rsa.
Your public key has been saved in /home/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]