ตั้งค่าเซิร์ฟเวอร์ SFTP Ubuntu - การถ่ายโอนไฟล์ SSH ที่ปลอดภัย
ติดตั้ง OpenSSH บน Ubuntu สร้างผู้ใช้ถ่ายโอนและเริ่มยอมรับการเชื่อมต่อ SFTP ที่เข้ารหัสบนพอร์ต 22 — เส้นทางทีละขั้นตอนที่สะอาดตาพร้อมการตรวจสอบความปลอดภัยที่คำแนะนำส่วนใหญ่ข้ามไป
📑บทต่างๆ
- SFTP คืออะไร — การถ่ายโอนไฟล์ที่อยู่ภายใน SSH เข้ารหัสตั้งแต่ต้นจนจบ
- ติดตั้งแพ็คเกจเซิร์ฟเวอร์ OpenSSH บน Ubuntu
- เริ่มบริการ ssh และทำให้สามารถรีบูตได้
- ยืนยันบรรทัดระบบย่อย SFTP ใน sshd_config
- สร้างผู้ใช้ที่โอนโดยเฉพาะ — ไม่ต้องเข้าสู่ระบบผู้ดูแลระบบของคุณ
- เปิดไฟร์วอลล์สำหรับ SSH
- เชื่อมต่อจากเครื่องที่สองและถ่ายโอนไฟล์แรก
- การตรวจสอบความปลอดภัยก่อนใช้งานเซิร์ฟเวอร์จริง
📋 ภาพรวมและคำแนะนำทีละขั้นตอน
ติดตั้งแพ็คเกจเซิร์ฟเวอร์ OpenSSH
SFTP คือการถ่ายโอนไฟล์ที่อยู่ภายใน SSH ดังนั้นทุกรหัสผ่านและทุกไฟล์จึงได้รับการเข้ารหัสตั้งแต่ต้นจนจบ บน Ubuntu ไม่ใช่ผลิตภัณฑ์แยกต่างหากที่คุณตามล่า แต่เป็นส่วนเล็กๆ ของเซิร์ฟเวอร์ OpenSSH Ubuntu จัดส่งพร้อมกับ ไคลเอนต์ SSH แต่ฝั่งเซิร์ฟเวอร์เป็นแพ็คเกจแยกต่างหาก ติดตั้ง:
sudo apt update
sudo apt install openssh-server
เรียกใช้ sudo apt update ก่อนเพื่อให้รายการแพ็กเกจใหม่ จากนั้นติดตั้งและยืนยันด้วย Y โปรแกรมติดตั้งจะสร้างการกำหนดค่าที่ /etc/ssh/sshd_config และสร้างคีย์โฮสต์ของเครื่องนี้โดยอัตโนมัติ นั่นคือซอฟต์แวร์ทั้งหมดที่มีอยู่จริงๆ SFTP เป็นระบบย่อยของบริการเดียวนี้ ไม่ใช่การดาวน์โหลดเพิ่มเติม และจะตอบกลับบนพอร์ต SSH มาตรฐาน 22
เริ่มบริการและทำให้มันรอดจากการรีบูต
แพ็คเกจมักจะเริ่มให้บริการด้วยตัวเอง พิสูจน์มัน และให้แน่ใจว่ามันกลับมาอีกครั้งหลังจากไฟฟ้าดับ:
sudo systemctl status ssh
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh ควรแสดงบรรทัด active (กำลังทำงาน) สีเขียว ซึ่งหมายความว่าเซิร์ฟเวอร์ SFTP กำลังฟังอยู่ sudo systemctl Enable ssh ทำให้มันเริ่มทำงานทุกครั้งที่บู๊ต และหากมันหยุด sudo systemctl start ssh จะนำมันกลับมา หลังจากเปลี่ยนแปลงการกำหนดค่าในภายหลัง sudo systemctl restart ssh จะเป็นคำสั่งที่ใช้
ssh ไม่ใช่ sshd การใช้ชื่อที่ไม่ถูกต้องเป็นสาเหตุที่พบบ่อยที่สุดที่ทำให้คำแนะนำที่ถูกต้องดูเหมือนจะล้มเหลวยืนยันบรรทัดระบบย่อย SFTP
เปิดการกำหนดค่าหนึ่งครั้งแล้วดู:
sudo nano /etc/ssh/sshd_config
ใกล้ด้านล่างคุณจะพบบรรทัดนี้ ซึ่ง Ubuntu รวมไว้เป็นค่าเริ่มต้น:
Subsystem sftp /usr/lib/openssh/sftp-server
หากบรรทัดหายไป ให้เพิ่มตามที่แสดง หากไม่มีบรรทัดดังกล่าว การเข้าสู่ระบบ SSH จะทำงาน แต่การถ่ายโอนไฟล์จะถูกปฏิเสธ ทิ้งทุกอย่างไว้คนเดียวในตอนนี้ การเปลี่ยนแปลงที่แข็งขึ้นในไฟล์นี้จะทำการตั้งค่าทีละรายการโดยตั้งใจ
สร้างผู้ใช้การโอนเฉพาะ
อย่ามอบข้อมูลเข้าสู่ระบบผู้ดูแลระบบของคุณเองสำหรับการถ่ายโอนไฟล์ สร้างบัญชีที่มีอยู่สำหรับการย้ายไฟล์เท่านั้น:
sudo adduser sftpuser
ตั้งรหัสผ่านเมื่อระบบถาม และข้ามคำถามเกี่ยวกับชื่อและหมายเลขโทรศัพท์ด้วย Enter — เป็นทางเลือก ผู้ใช้รายนี้ได้รับโฮมโฟลเดอร์ที่ /home/sftpuser และไม่มีอะไรอื่นอีก
เปิดไฟร์วอลล์
หาก UFW ทำงานบนเซิร์ฟเวอร์ พอร์ต 22 จำเป็นต้องมีการส่งผ่านที่ชัดเจนก่อนที่ไคลเอ็นต์จะสามารถเข้าถึงบริการได้:
sudo ufw allow OpenSSH
sudo ufw status
โปรไฟล์ OpenSSH จะเปิดพอร์ต 22 ทุกประการ ซึ่งเป็นพอร์ตเดียวที่มีทั้งการเข้าสู่ระบบ SSH และการถ่ายโอน SFTP ยืนยันว่ากฎแสดงอยู่ในเอาต์พุตสถานะก่อนที่คุณจะทดสอบจากเครื่องอื่น
เชื่อมต่อและถ่ายโอนไฟล์แรก
จากเครื่องที่สองบนเครือข่ายเดียวกัน ให้เชื่อมต่อกับผู้ใช้ที่ถ่ายโอน แทนที่ที่อยู่ด้วย IP จริงของเซิร์ฟเวอร์ของคุณ — เรียกใช้ ip a บนเซิร์ฟเวอร์เพื่อดู:
sftp [email protected]
ภายในเซสชัน put อัปโหลดไฟล์ get ดาวน์โหลดหนึ่งไฟล์ และ exit ออก บน Windows ทั้ง WinSCP และ FileZilla พูด SFTP และเชื่อมต่อด้วยเพียงที่อยู่ พอร์ต 22 ชื่อผู้ใช้ และรหัสผ่าน
ใช่เฉพาะเมื่อคุณเชื่อถือลายนิ้วมือนั้นเท่านั้น — เป็นการตรวจสอบที่พิสูจน์ว่าคุณเข้าถึงเซิร์ฟเวอร์ของคุณเองและไม่ใช่ผู้แอบอ้าง และเก็บเซิร์ฟเวอร์นี้ไว้ในเครือข่ายท้องถิ่นไว้ก่อน: การวางเซิร์ฟเวอร์ไว้บนอินเทอร์เน็ตเป็นการตัดสินใจที่แตกต่างซึ่งต้องใช้การเข้าสู่ระบบด้วยรหัสแทนรหัสผ่านและการป้องกันเช่น Fail2ban ก่อน อย่าส่งต่อพอร์ตเราเตอร์จนกว่าการชุบแข็งจะเสร็จสิ้นเซิร์ฟเวอร์ของคุณกำลังทำงานอยู่ การติดตั้งอย่างรวดเร็วจะทำให้คุณมีเซิร์ฟเวอร์ที่ใช้งานได้ ไม่ใช่เซิร์ฟเวอร์ที่เสร็จสมบูรณ์ — รหัสผ่านเข้าสู่ระบบบนอินเทอร์เน็ตแบบเปิด ผู้ใช้ที่สามารถดูทั้งดิสก์ และไม่มีบันทึกการเข้าสู่ระบบเป็นช่องว่างสามช่องที่ต้องปิดในลำดับถัดไป
🏷️ตัวแปรการค้นหาหัวข้อและคำหลัก
🎙️ บทถอดเสียงฉบับเต็ม — แตะเพื่อขยาย
__TOK_31__
__TOK_32__
__TOK_33__
❓ คำถามที่พบบ่อย (ภาษาอังกฤษ)
บทช่วยสอนนี้ติดตามฟรี 100% หรือไม่
__TOK_34__
ผู้เริ่มต้นสามารถปฏิบัติตามคำแนะนำนี้ได้หรือไม่?
__TOK_35__
ฉันจะถามคำถามได้ที่ไหนหากฉันติดขัด?
__TOK_36__