การทำ login SSH อัตโนมัติ
ผมเป็นคนหนึ่งที่ใช้ SSH อยู่เป็นประจำทุกครั้งที่ใช้ internet เลยก็ว่าได้และเกือยทุกครั้งต้องมานั้ง login เพื่อเข้าใช้งานมันน่าเบื่อ เสียเวลา และบางทีเราต้อง login หลายๆเครื่องยิ่งเสียเวลา บทความต่อไปนี้ผมจะพูดถึงวิธีการที่ทำให้เราสามารถ login SSH อัตโนมัติ จะทำให้เราประหยังเวลามากขึ้นทีเดียวครับ
ในทีนี้ผมจะใช้ Client เป็น WindowsXP ส่วน SSH Server นั้น Run อยู่บน Windows 2003 X64 นะครับ ไว้โอกาศหน้าผมจะนำเสนอเป็น linux หรือ unix ค่อยว่ากันอีกทีครับ
ก่อนอื่นเลยสิ่งที่เราต้องมีเพื่อใช้งานคือ
- Putty มันคือ SSH client นั่นเองครับ ผมคิดว่าคนที่ใช้ SSH เกือบร้อยเปอเซ็นรู้จักมันดีครับ
- Pageant มันคือเครื่องมือที่จะช่วยให้เราทำการ login SSH แบบอัตโนมัตินั่นเองแหละครับหรือเรียกให้ดูดีหน่อยก็ SSH authentication agent
- PuTTYgen มันคือเครื่องเมือในการสร้าง public key และ private key เพื่อใช้ในการ นั่นเองครับ เรียกชื่อฝรั่งว่า generation utility
เครื่องเมือเหล่านี้หา Download ได้ฟรีครับไม่ต้องเสียเงิน http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
ตอนนี้เราก็มีเครื่องเมือครบแล้ว เรามาเริ่มกันเลย
ขั้นตอนแรกเลยสิ่งที่ต้องทำคือการสร้าง public key เพื่อนนำไปวางไว้ที่ server และprivate key เอามาใช้งาน กับ client ครับ การสร้าง key เริ่มต้นด้วยการ เปิดโปรแกรมที่เรา download มาคือ PuTTYgen จะได้หน้าตาดังรู้ป
จากนั้นกด Generate ครั้บ แล้วเลื่อ mouse ไปมาเพื่อทำการสุ่มค่า ออกมาดังรูป
ภายหลังจักนั้นเราก้จะได้ออกมาหน้าตาอย่างงี้ครับ
ถึงตอนนี้แล้วให้เราใส่
comment ของเราเลยครับเพื่อช่วยจำว่ามันคืออะไร จะใส่ไม่ใส่ก็ได้แล้วแต่ส่วน key passphrase นั้นจะใส่ก็ได้ครับ แต่ในที่นี้ผมไม่ใส่เพราะถ้าใส่มันก็จะถามเราเวลาเรา load ซึ่งผมไม่อยากจะเสียเวลาตรงนั้นอีก
จากนั้นให้ทำการ Save key ไว้ในเครื่องครับ ve public
ในนี้ผมใช้ชื่อ publickey-web2
จากนั้นก็ Save private key มันจะขึ้นมาเตือนว่าเรายังไม่ได้ใส่ key passphrase ให้ตอบ ok ไปเลยครับแล้วก็ ใส่ชื่อ ไฟลืในที่นี้ผมใส่ชื่อเป็น private-web2.ppk
จากนั้นให้ทำการ upload file public key (ในที่นี้ของผมเป็น publickey-web2) ไปยัง server ครับ
แล้วหลังจากนั้นเราก้ไป config ที่ server ซึ่งในที่นี้แต่ละ SSH Server จะมีวิธีการ config ไม่เหมือนกัน แต่หลักการทำงานเหมือนกันครับ ในที่นี้ผมเสนอคือ Bitvise WinSSHD ที่ run อยู่บน windows 2003 x64 ครับ ผมขอข้ามขั้นตอนการ Set user ไปนะครับขอเป้นขั้นตอนการใส่ public key เลยนะครับ
ขึ้นตอนการใส่ public key นั้น หลังจากที่เรา upload file public key ไปแล้ว ให้ ไปที่ หน้า Account ของเราที่ใช้งาน จากนั้นคลิ๊กที่ public key แล้วเลือก import จากนั้นเลือกไฟลืที่เราทาร upload ขึ้นไปครับ กด close จากนั้นให้ทำการ password authentication เป็น disable เพื่อที่เราจะไม่ได้ใส่ password อีกเราจะใช้ผ่าน key แทนจะได้ค่าดังรูป
หลังจากนั้น ก็ทำการ restart service ของ SSH Server ครับ
ทีนี้มาถึงขั้นตอนการ config ที่ฝั่ง client กันบ้างแล้วครับ
ให้เราทำการเปิด pageant.exe ขึ้นมา แล้วทำการ add key แล้วเลือก private key save ไว้ในเครื่องของครับ
หลังจากที่ add key แล้วก็ปิดไปได้ครับ แต่โปรแกรมมันจะยังคง run อยู่ จะขึ้นเป็น icon เล็กๆด้านขวามือของ task bar ครับ
ขึ้นตอนการ config ก็มีแค่นี้ครับง่ายมากใช่ไหมละครับ หลังจากนั้นเราก็จะมา config putty กันเพื่อนให้ทำการ login อัตโนมัติ
ก่อนอื่นเลยเปิด putty ขึ้นมาแล้วเข้าไปที่ Connection -àdata แล้วทำการกรอก Username ที่ใช้ login ตรง auto-login ตามรูปครับ
หลังจากนั้นไปที่ SSHàAuth เพื่อทำการเลือก ไฟล์ private key ซึ่งก็คือ ไฟล์เดียวกับที่เลือกใน pageant นั่งเองครับ
ดังรูป
จากนั้นแล้วให้กลับไปยัง session เพื่อใส่ ip หรือ domain name ของ server จากนั้นก้ใส่ saved Sessions แล้วทำการกด save เพื่อบันทึกค่า config ต่างๆของเราไว้เพื่อเรียกใช้คราวหน้าครับ
ส่วนในเรื่องการ config putty อื่นๆนั้นก้ตามที่ต้องการใช้งานครับ ไม่ว่าจะเป็น tunnels เพื่อทำการ Port Forwarding อันนี้ก็แล้วแต่จะทำกันครับ จะไม่ขอพูดในที่นี้
เท่านั้นก็เสร้จแล้ว ลอง กด open ดูครับจะเห้นว่าเราไม่ต้องใส่ user name กับ password อีกต่อไปแล้ว มันจะทำการ login อัตโนมัติให้เลยครับ
อืมแล้วถ้าเราจะทำการ ให้มัน login ทุกครั้งที่เปิดเครื่องทำไง???
เรื่องนี้ง่ายมากครับ
ก่อนอื่นเลย ทำการ create shortcut ของ pageant จากนั้นกด คลิ๊กขวาที่ shortcut แล้วเลือก Properties เลือก Tab Shortcut ไปที่ช่อง target จากนั้น ใส่ path ของ private key ลงไปต่อท่าย เช่น
"C:\Documents and Settings\username\Desktop\pageant.exe" "C:\Documents and Settings\ username \Desktop\privatekey_web2.ppk"
จากนั้น เปิด notepad ขึ้นมาแล้วพิมพ์ ตามนี้ครับ
C:\Documents and Settings\ username\Desktop\pageant.lnk
C:\Documents and Settings\ username\Desktop\putty.exe -load "web2"
หลังจากนั้น Save เป็น นามสกุล .bat เช่น puttyAutoLogin.bat จากนั้นนำไปวางไว้ที่
C:\Documents and Settings\ username \Start Menu\Programs
แค่นี้ก็เสร้จแล้วครับ ทีนี้เวลาที่เรา Login เข้า windows putty จะทำการ login อัตโนมัติหรือหากจะให้ login เข้าทุกครั้งตั้งแต่เปิดเครื่องเลยเราอาจจะต้องทำการสร้าง service ขึ้นมา ซึ่งวิธีนี้ผมจะนำเสนอในภายหน้านนะครับ
วันนี้เอาไว้แค่นี้ก่อนนะครับอาจจะไม่ละเอียดนักแต่ก็พอเป็นแนวทางได้