หากเคยจัดการ Linux Server จาก Windows คุณน่าจะใช้ PuTTY หรือได้ยินมาก่อน มันเป็น Utility ยอดเยี่ยมและเป็น SSH Client โปรดมาหลายปี แต่ในปี 2019 Windows 10 เริ่มรวม OpenSSH Client ในตัว ทำให้ PuTTY ไม่จำเป็นแล้ว
ทำไมควรหลีกเลี่ยงการล็อกอินด้วยรหัสผ่าน
OpenSSH Daemon ที่รันบนเซิร์ฟเวอร์ผ่านการทดสอบการใช้งานและโจมตีหลายปี รวมถึง Patch ซอฟต์แวร์ นานากันที่เซิร์ฟเวอร์จะถูกแฮ็กเพราะบั๊กใน SSH Daemon แต่การบุกเข้าหลายครั้งมาจาก Administrator ที่ใช้รหัสผ่านอ่อน แม้รหัสผ่านที่ดูซับซ้อน มีตัวอักษรและตัวเลข ก็มักเปราะบางต่อ Brute-force Attacks
นี่คือที่มาของ SSH Keys ไม่สามารถ Brute-force ได้ – ซับซ้อนเกินไป หากทำได้ ให้ปิด Password Logins ในไฟล์ "sshd_config" (บนเซิร์ฟเวอร์) และใช้ Keys แทน หากเดินทางและไม่สามารถพก Laptop ไป ก็เก็บ Private Key ไว้ใน USB Stick แล้วแขวนกับกุญแจจริง เซิร์ฟเวอร์ของคุณจะปลอดภัยกว่านี้มาก
สร้างคู่ Public/Private SSH Key Pair
เปิด Command Prompt จาก Start Menu พิมพ์:
ssh -V
ควรได้ผลลัพธ์คล้ายภาพด้านล่าง

หากได้ Error "command not recognized" ให้ทำตามขั้นตอนติดตั้ง OpenSSH ที่นี่ จะเกิดกับ Windows 10 เวอร์ชันเก่าที่ไม่ได้อัปเกรดนานมาก
เพื่อสร้างคู่ Public/Private Key ให้พิมพ์ใน Command Prompt:
ssh-keygen
ที่พรอมพ์แรก "Enter file in which to save the key" กด Enter เพื่อบันทึกที่ Default Location
ที่พรอมพ์ที่สอง "Enter passphrase (empty for no passphrase)" มี 2 ทางเลือก:
- กด Enter สร้าง Key ไม่เข้ารหัส หากคุณเป็นผู้ใช้คนเดียวของคอมพิวเตอร์ นี้ปลอดภัย
- พิมพ์รหัสผ่าน จะเข้ารหัส Key ของคุณ ไอเดียดีหากแชร์คอมพิวเตอร์กับคนอื่น หากจะพก Key ไปใน USB Stick ควรใช้รหัสผ่านตรงนี้ หากใช้ Passphrase แข็งแกร่ง และใครขโมย Key จาก USB ไป พวกเขาจะใช้ไม่ได้โดยไม่มีรหัสผ่าน
เมื่อเสร็จ คุณจะเห็นภาพคล้ายด้านล่าง

เปิด Public Key
จากชื่อ Private Key ควรเก็บไว้ตัวเองเท่านั้น ห้าม Copy/Save ลงเซิร์ฟเวอร์เด็ดขาด!
แต่ Public Key ควรบันทึกบนเซิร์ฟเวอร์ที่ต้องการเข้าถึง ในไฟล์ "~/.ssh/authorized_keys" (หรือแปะ/เพิ่มลงในไฟล์นี้) เพื่อเปิด Key นี้ Copy และ Paste ไปที่จำเป็น ให้พิมพ์ใน Command Prompt:
notepad %userprofile%\.ssh\id_rsa.pub
ผู้ให้บริการ Cloud (VPS) ส่วนใหญ่ให้วิธีง่ายเพื่อเพิ่ม Public Key(s) ผ่าน Control Panel บนเว็บ เมื่อเริ่มเซิร์ฟเวอร์กับ Public Key ที่เชื่อมโยง คุณจะล็อกอินด้วย Private Key ได้ เนื่องจาก Private Key อยู่ที่ Default Location คำสั่งล็อกอินเซิร์ฟเวอร์/VPS เรียบง่ายแค่:
ssh root@203.0.113.1
สรุป
เห็นได้ชัดว่าสร้าง SSH Keys บน Windows ตอนนี้ง่ายมาก โดยคำสั่ง ssh-keygen ทำงานทั้งหมด หากยากที่จะเข้าใจวิธีเพิ่ม Public Key ลงเซิร์ฟเวอร์ ให้อ่านเอกสารของ Provider พวกเขามีหน้าอธิบายรายละเอียดเสมอ