โดยหลักการแล้ว การ SSH (Secure Shell) โดยไม่ต้องใส่รหัสผ่านจะต้องใช้ private key และ public key ในการจับคู่ระหว่างเครื่องแม่ข่ายและเครื่องลูกข่าย โดยไฟล์ public key จะใส่ไว้ที่เครื่องแม่ข่าย และไฟล์ private key จะใส่ไว้ที่เครื่องลูกข่าย ซึ่งมีวิธีการทำดังนี้
รันคำสั่งข้างล่างนี้บนเครื่องลูกข่าย
ssh-keygen -t dsa
แล้วจะมีข้อมูลให้เรากรอกดังนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Generating public/private dsa key pair. Enter file in which to save the key (/home/username/.ssh/id_dsa): Created directory '/home/username/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/username/.ssh/id_dsa. Your public key has been saved in /home/username/.ssh/id_dsa.pub. The key fingerprint is: 5c:f6:a2:aa:ac:91:a5:35:1e:2a:3f:04:a0:76:f4:c3 username@ubuntu:~$ The key's randomart image is: +--[ DSA 1024]----+ | | |. . | |o . o o | |o. . E . o . | |... = . S . . | | .B o . . | |..= . . | | o.o . | | ooo.. | +-----------------+ |
บรรทัดที่ 2 จะเป็นการใส่ที่อยู่ของ key ไฟล์ทั้ง public และ private key ซึ่งถ้ากด enter โดยไม่กรอกอะไรจะเป็นการบันทึกไฟล์ key ไว้ที่ /home/username/.ssh/id_dsa
บรรทัดที่ 5-6 จะเป็นการใส่รหัสผ่านเพื่อเพิ่มความปลอดภัยให้กับ key ของเราในกรณีที่อาจจะถูกขโมยไฟล์ key ของเราไปได้
หลังจากนั้นเครื่องจะทำการสร้างไฟล์ id_dsa ซึ่งเป็น private key และไฟล์ id_dsa.pub ซึ่งเป็น public key ขึ้นมาให้เราโดยอัตโนมัติตาม path ที่เราใส่ไว้ข้างต้น
ทำการคัดลอกไฟล์ id_dsa.pub ไปไว้ที่เครื่องแม่ข่ายที่ /home/serverusername/.ssh/ และรันคำสั่ง
cd /home/serverusername/.ssh/ mv id_dsa.pub authorized_keys chmod 600 authorized_keys
ส่วนไฟล์ id_dsa ให้นำไปไว้ที่เครื่องลูกข่ายที่ต้องการจะ SSH เข้าไปยังเครื่องแม่ข่าย รวมถึงต้อง chmod permission ของไฟล์ให้เป็น 600 ด้วย โดยอาจจะเปลี่ยนชื่อไฟล์เป็นชื่ออะไรก็ได้
ทำการทดสอบ SSH จากเครื่องลูกข่ายไปยังเครื่องแม่ข่ายด้วยคำสั่ง
ssh -l serverusername -i /home/username/.ssh/id_dsa hosturl
-l serverusername คือ Username บนเซิร์ฟเวอร์ที่ต้องการจะ SSH เข้าไป
-i /home/username/.ssh/id_dsa คือ path ของ private key ที่จะใช้ติดต่อกับเซิร์ฟเวอร์
hosturl คือ ไอพีหรือ URL ของเซิร์ฟเวอร์
อัพเดต: (21/12/09) จริงๆ แล้วคำสั่ง ssh-kengen จะใส่ -t dsa หรือไม่ใส่ก็ได้ แต่ถ้าไม่ใส่ จะเป็นการเข้ารหัสแบบ rsa แทน

Add new comment