ssh โดยใช้ putty บนวินโดวส์

เอามาจาก ThaiLinuxCafe - debian : ssh โดยใช้ putty บนวินโดวส์

ต้องการทดลองใช้ ssh บนวินโดวส์ แบบไม่ต้องถามรหัสผ่าน

อ้างอิง PuTTY User Manual : Chapter 8: Using public keys for SSH authentication

สำหรับท่านที่ยังต้องทำงานบนฝั่งวินโดวส์อยู่
ssh client บนวินโดวส์นั้น ตัวที่นิยมคือ putty
ดาวน์โหลดได้จาก PuTTY Download Page
ตัวที่เราจะใช้คือ putty.exe และ puttygen.exe
(หากต้องการใช้การคัดลอกไฟล์ผ่านเครือข่าย อาจดาวน์โหลด pscp.exe มาด้วยก็ได้ แต่ในที่นี้จะไม่ใช้วิธีเหมือนกับคราวที่แล้ว ทั้งนี้เพื่อหลีกเลี่ยงการบันทึกไฟล์ ซึ่งอาจเกิดปัญหาอักขระของระบบวินโดวส์และยูนิกส์จัดเก็บไม่เหมือนกัน แต่จะใช้วิธี Copy&Paste โดยใช้เมาส์ปุ่มขวา ผ่าน putty แทน)

เมื่อได้ไฟล์มาแล้วก็มาเก็บไว้ใน search path ( ผมเก็บไว้ใน c:\windows )

สมมุติว่าเซิร์ฟเวอร์ที่เราต้องการ ssh ไปหา ชื่อ server1 มีไอพี 192.168.1.1
และเราต้องการสร้างบัญชี ssh ในชื่อ root

เริ่มด้วย
เปิด putty รอไว้ 1 หน้าต่าง
เริ่มรัน putty ตัวแรก เพื่อจะนำกุญแจที่จะผลิตในขั้นตอนต่อไปมาแปะใส่
กด Start -> Run -> "putty 192.168.1.1 -l root"
ปล่อยรอไว้

ผลิตกุญแจ
โดยรัน puttygen
กด Start -> Run -> "puttygen"

  • ไปที่ช่อง Parameters
    เลือก SSH2-DSA
    Number of bits in a generated key : 2048

    แล้วกดปุ่ม Generate
    ( ขั้นตอนนี้ อย่าลืมเอาเมาส์เคลื่อนไปมาตรงที่ว่าง ๆ เพื่อใช้ในการผลิตรหัสสุ่ม )

  • กดปุ่ม Save private key ตั้งชื่อว่า id_dsa ( เขาจะเปลี่ยนชื่อเป็น id_dsa.ppk โดยอัตโนมัติ )
    Are you sure you want to save this key without a passphrase to protect it?
    <<<--- Yes
  • งานต่อไปคือการคัดลอกกุญแจไปแปะที่เซิร์ฟเวอร์ ทำโดยเอาเมาส์ไปป้ายในช่อง "Public key for pasting into OpenSSH authorized_keys file:"
    กด Ctrl+C เพื่อคัดลอก (จะนำไปแปะที่หน้าต่าง putty อันแรกที่เปิดไว้)

กลับมาที่ putty หน้าต่างแรก
ขั้นตอนนี้อ่านละเอียดนะครับ
# cd ~/.ssh
# echo "(***คลิกขวาเมาส์ในระหว่างเครื่องหมายคำพูด***)" >> authorized_keys

เราพิมพ์ echo " แล้วก็คลิกขวาเมาส์เพื่อแปะข้อมูลกุญแจที่เกิดจากขั้นตอนก่อน แล้วจึงพิมพ์ต่อว่า " >> authorized_keys

รัน putty อีกหน้าต่างนึง
เพื่อจะบันทึกค่าเก็บไว้ใช้ในครั้งต่อ ๆ ไป

เริ่มรัน putty แบบไม่ใส่พารามิเตอร์
กด Start -> Run -> "putty"

ใส่ชื่อ Host Name
Category -> Session

Host Name: 192.168.1.1    Port: 22

ใส่ชื่อผู้ใช้
Category -> Connection -> Data

Auto-login username: root

นำกุญแจที่ผลิตได้ มาใช้งาน
Category -> Connection -> SSH -> Auth

Private key file for authentication: <<<--- กด Browse เพื่อเลือกไฟล์ id_dsa.ppk ที่บันทึกไว้มาใช้

ถึงขั้นตอนนี้อย่าเพิ่งกด Open บรรทัดล่างสุด แต่ให้บันทึก session ก่อน

บันทึก session เพื่อจะนำมาใช้ในภายหลัง
Category -> Session
ตั้งชื่อว่า session1

Saved Sessions: <<<--- session1 -> กดปุ่ม Save

ลองใช้งาน
กด Open บรรทัดล่างสุดได้แล้ว

ถ้าไม่มีอะไรผิดพลาด โปรแกรมจะล๊อกอินเข้าเลย โดยไม่ถามรหัสผ่าน
ก็สามารถปิดหน้าต่างที่เปิดค้างไว้ได้ทุกบาน

ในการใช้งานครั้งต่อไป เราจะใช้คำสั่งว่า
Start -> Run -> "putty -load session1"
ก็สามารถใช้งานได้ทันที

หมายเหตุ

  • ไม่เหมาะสำหรับเครื่องวินโดวส์ที่มีผู้ใช้หลายคน เพราะคนอื่นสามารถลักลอบใช้งาน ssh ได้ในสิทธิ์ root เลย
  • งานนี้ควรแสดงเป็นแบบกราฟฟิก แต่ผมขี้เกียจ และต้องการประหยัดแบนวิธ เลยใช้โหมดอักขระแทน พยายามอ่านหน่อยแล้วกันนะครับ