ตัวอย่างการใช้งาน SFTP

--

ภาพตัวอย่าง SFTP (Secured File Transfer Protocol)

FTP (File Transfer Protocol) เป็นโปรโตคอลใน TCP / IP ใช้ในการถ่ายโอนไฟล์จากโฮสต์หนึ่งไปยังอีกโฮสต์หนึ่ง ซึ่งในการ FTP นั้นต้องกรอก Password เพื่อเข้าถึง Server ปลายทาง แต่ Password นั้นอยู่ในรูปแบบธรรมดาซึ่งอาจมีการคุกคามโดย Hacker ซึ่ง Hacker สามารถนำข้อมูลไปใช้ในทางที่ผิดได้ (ไม่ปลอดภัย) ยิ่งถ้าเป็นข้อมูลที่สำคัญแล้วล่ะก็ ยิ่งทำให้เกิดความเสียหายมากมายมหาศาล โดยเฉพาะธุระกิจด้านการเงิน ดังนั้น! จึงนำ SFTP (Secured File Transfer Protocol) มาใช้ในการแก้ปัญหานี้!

SFTP (Secured File Transfer Protocol) การทำงานก็เหมือน FTP นั่นแหล่ะ! แต่จะมีความปลอดภัยกว่า ซึ่งสร้างความปลอดภัยโดย SSH (Secure Shell) ก็คือ ใช้ SSH สร้าง public key และ private key แล้วทำการแลกคีย์ระหว่าง Client กับ Server ด้วยการ Copy public key ไปไว้บนเครื่อง Server เพื่อให้ Server รู้จักกัน หลังจากนั้นเราก็ไม่ต้องกรอก Password ในการเข้าถึง Server ปลายทาง เพื่อให้มองภาพออกเราไปดูตัวอย่างการใช้งานกัน!

Setting Soft waere

ตรวจสอบ Remote login โดยใช้ command ด้านล่าง

// Remote login is not success example
$ ssh localhost
ssh: connect to host localhost port 22: Connection refused

ถ้า Remote login is not success ให้ไป Setting ดังตัวอย่างด้านล่าง

[choos] Apple Icon -> System Preferences -> Sharing

ภาพตัวอย่างการเปิด Remote login

ตรวจสอบ Remote login โดยใช้ command อีกครั้ง

// Remote login is success example
$ ssh localhost
Last login: Fri Apr 16 12:05:29 2021 from ::1

Install ssh-copy-id ด้วย Command ด้านล่าง (ใช้ในกรณีที่ไม่สามารถใช้ ssh-copy-id) ได้

$ cd /usr/local
$ sudo chown -R `whoami` /usr/local
$ brew install ssh-copy-id

SFTP use for MacOS Example

  1. สร้าง private key และ public key ด้วย command ด้านล่าง
  • rsa หมายถึง มาตรฐานซึ่งมีหลายมาตรฐานแล้วแต่จะเลือกใช้
  • -b 4096 หมาถึง byte ยิ่งใส่เลข byte เลขเยอะ ยิ่งมีความปลอดภัยสูง
$ ssh-keygen -t rsa -b 4096
ภาพตัวอย่างการสร้าง private key และ public key

2. เราจะได้ private key และ public key ในโฟล์เดอร์ .ssh ดังตัวอย่าง

  • id_rsa คือ private key
  • id_rsa .pub คือ public key
$ cd .ssh
$ ls
id_rsa id_rsa.pub known_hosts

3. มาลอง Test SFTP ก่อนที่จะทำการแรกคีย์ จากตัวอย่างด้านล่างจะเห็นว่าเราต้องกรอก Password ก่อน เราถึงจะสามารถเข้าถึง Server ปลายทางได้

$ sftp <Username>@<Host>
ภาพตัวอย่างการ Test SFTP ไปยัง Server ปลายทาง

4. ทำการแลกคีย์ระหว่างเครื่อง Server ด้วยการ Copy public key ไปยัง Server ปลายทางโดยใช้ command ดังต่อไปนี้

$ ssh-copy-id -i id_rsa.pub <Username>@<Host>

จากตัวอย่าง ด้านล่างเราทำการ Copy public key จากเครื่อง Server ต้นทางไปยัง .ssh/authorized_keys บนเครื่อง Server ปลายทาง เพื่อให้เครื่อง Server รู้จักกัน โดยจะไม่ไปทับคีย์เดิม แต่จะต่อคีย์ไปเรื่อยๆ

ภาพตัวอย่างการ Copy public key จาก Server ต้นทาง ไปยัง Server ปลายทาง

5. หลังจากที่เราทำการแลกคีย์ด้วยการ Copy public key ไปวางไว้บน Server ปลายทางแล้วเราลองมา Test SFTP อีกรอบ คราวนี้เราไม่ต้องกรอก Password ก็สามารถเข้าถึงเครื่อง Server ปลายทางเพราะเราได้ทำการแลกคีย์กันเรียบร้อยแล้ว!

$ sftp <Username>@<Host>
ภาพตัวอย่างการ Test SFTP ไปยัง Server ปลายทาง

--

--

No responses yet