Saturday, October 15, 2011

ssh ไม่ต้องใส่รหัสผ่าน

ssh เป็นช่องทางในการ remote ไปจัดการเครื่อง server ที่นิยมใช้กันมากที่สุดเนื่องจากมีความปลอดภัยในการใช้งาน โดยคำสั่งในการใช้งาน ssh โดยปกติแล้วจะใช้
ssh -p [port] [user]@[ip]
โดยที่ [port] เป็นเลข port ในการเชื่อมต่อ ซึ่งหากไม่ใส่จะเป็นค่า default คือ port 22
[user] เป็นชื่อ user ที่อยู่ฝั่ง server
[ip] เป็น ไอพีของฝั่ง server ที่ต้องการเชื่อมต่อ
แต่เมื่อมีการใช้งาน ssh บ่อยมาก ๆ ก็จะเริ่มไม่อยากพิมพ์รหัสผ่านในการเชื่อมต่อ ทุกครั้ง ซึ่งเครื่องที่ใช้ปกติก็ใช้เพียงคนเดียว จึงอยากทำให้ ssh แล้วไม่ต้องใส่รหัสผ่าน โดยแนวทางในการทำ ssh แบบไม่ต้องใส่รหัสผ่านนี้ ได้ใช้แนวทางจาก เว็บ thaicert แต่อาจมีบางคำสั่งที่ไม่เหมือนกันครับ ขั้นตอนการทำมีดังนี้

  • สร้าง private key และ public key ด้วยคำสั่ง
  • ssh-keygen -t rsa
  • จากนั้นจะข้อความดังนี้
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/[user]/.ssh/id_rsa):
    
    ให้กด enter เลยเพื่อเก็บ key ไว้ที่แฟ้ม /home/[user]/.ssh/ โดยที่ [user] คือชื่อ user ของเครื่องที่ใช้ปกติ
  • ข้อความต่อไปจะถามว่าต้องการเข้ารหัสผ่านของ key ด้วยหรือไม่
    Enter passphrase (empty for no passphrase):
    
    หากว่าเป็นเครื่องที่ใช้งานเพียงคนเดียว และแน่ใจว่ามีความปลอดภัยมากพอก็สามารถกด enter ได้เลยเพื่อไม่ต้องกำหนดรหัสผ่าน
  • เมื่อสร้าง key เสร็จแล้ว กำหนด permission เพื่อความปลอดภัยมากขึ้น
    chmod 600 id_rsa
    chmod 644 id_rsa.pub
  • ขั้นตอนสุดท้ายเป็นการนำ public key ไปเก็บไว้ที่เครื่อง server
    ssh-copy-id [user_serv]@[ip_serv]
    [user_serv] คือ ชื่อ user ฝั่ง server
    [ip_serv] คือ ไอพี ฝั่ง server
เพียงเท่านี้ทุกครั้งที่ใช้คำสั่ง ssh ไปยังเครื่อง server ก็จะไม่ต้องใส่รหัสผ่านอีกแล้ว

No comments:

Post a Comment