NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
TH

คำสั่ง Linux และทักษะเชลล์

sftp: การถ่ายโอนไฟล์ด้วยงบประมาณ SSH

sftp ใช้งานอยู่ใน SSH ซึ่งเป็นเหตุผลว่าทำไมมันจึงมีอายุยืนยาวกว่าคู่แข่ง: คีย์, chroots, Jump hosts และเส้นทางการตรวจสอบทั้งหมดมาได้ฟรี OpenSSH ย้าย scp ไปยังโปรโตคอล SFTP อย่างเงียบๆ ในเวอร์ชัน 9.0 เนื่องจาก SFTP มีบทบาทเป็นโปรโตคอลจริง: รายการไดเร็กทอรี, mkdir, การอนุญาต, การเปลี่ยนชื่อ และโปรโตคอลที่น่าประหลาดใจน้อยกว่ามาก Interactive sftp นั้นใช้ได้สำหรับการย้ายครั้งเดียว ระบบอัตโนมัติทำงานผ่านโหมดแบตช์ รหัสทางออก และการขอโทษเป็นครั้งคราวต่อ rsync

ประเด็นสำคัญ

  • ระบบอัตโนมัติคือโหมดแบตช์: sftp -b bat.txt user@host รันไฟล์คำสั่ง ออกจากไม่เป็นศูนย์หากเกิดความล้มเหลวใดๆ และอ่านจาก stdin ด้วย -b -; การแจ้งรหัสผ่านโดยไม่ได้ตั้งใจคือโหมดแบตช์บั๊กจะถูกลบออกเร็วเป็นสองเท่าของการเพิ่มความปลอดภัย
  • ชุดคำสั่งมีขนาดเล็กตามวัตถุประสงค์: ls -l, mkdir, ใส่ -p (รักษาการประทับเวลา), get -r (เรียกซ้ำ), chmod และ df -h ภายในเซสชันครอบคลุม 95% ของความต้องการในการดำเนินงาน
  • รู้ว่าเมื่อใดที่ rsync ชนะ: sftp จะส่งไฟล์ทั้งหมดอีกครั้ง ในขณะที่ rsync -avz --partial over ssh จะย้ายเดลตา ไม่ตัดสิ่งใดๆ โดยไม่โต้ตอบ และเก็บรักษาไฟล์เก็บถาวรข้อมูลเมตาจำนวนมากที่มีความสำคัญจริงๆ
  • ฝั่งเซิร์ฟเวอร์ sftp เปรียบเสมือนรั้ว: ForceCommand Internal-sftp ภายในบล็อก Match ด้วย ChrootDirectory จะเปลี่ยนบัญชีให้เป็นดรอปบ็อกซ์ที่เข้ารหัสและได้รับการตรวจสอบโดยไม่มีเชลล์เลย
  • 'sftp ใช้งานได้ แต่เชลล์ใช้งานไม่ได้' เป็นการออกแบบ ไม่ใช่ข้อผิดพลาด: Subsystem sftp Internal-sftp line คือสิ่งที่เปิดใช้งานได้ และการย้าย scp ไปยัง SFTP ใน OpenSSH 9.0 หมายความว่าเซิร์ฟเวอร์รุ่นเก่าที่ไม่มีระบบย่อยสามารถทำลายงาน scp เก่าได้
  • การใช้ Cron จะพิจารณาจากพฤติกรรมความล้มเหลว: -o BatchMode=yes, -o ConnectTimeout=10 และการตรวจสอบโค้ดทางออกที่ชัดเจนจะทำให้ระบบเงียบค้างเป็นความล้มเหลวที่ดังและเพจได้
  • เอาต์พุตความคืบหน้าคือการควบคุมเสียงรบกวน: sftp ช่างพูด, บันทึก cron เงียบ; -q (หรือการเปลี่ยนเส้นทาง) บวกกับการบันทึกที่ด้าน sshd ให้เส้นทางการตรวจสอบที่ไม่เน่าเปื่อยเป็นกิกะไบต์ของแถบการถ่ายโอน
  • การพิมพ์ผิดอย่างหนึ่งที่ประกอบอาชีพ: sftp -P 2222 ใช้ตัวพิมพ์ใหญ่ P (ตัวพิมพ์เล็ก -p หมายถึงอนุรักษ์) ในขณะที่ scp สลับแบบแผนด้วยตัวอักษรเดียวกัน เมื่อพอร์ตผิดให้ตรวจสอบเคสก่อน

บันทึกจากหน้างาน

งาน cron sftp ครั้งหนึ่งค้างหกชั่วโมงเมื่อได้รับแจ้งรหัสผ่านที่ไม่คาดคิดก่อนที่จะมีใครสังเกตเห็น การถ่ายโอนสคริปต์ทุกครั้งตั้งแต่ได้รับ -b, -o BatchMode=yes และรหัสทางออกจะตรวจสอบหน้านั้นแทนที่จะรอ

คำถามที่พบบ่อย

OpenSSH 9.0 เปลี่ยน scp จริงหรือ

โปรโตคอล ไม่ใช่พื้นผิว: ตอนนี้ scp ย้ายไฟล์ผ่าน SFTP ข้างใต้ ดังนั้นโฮสต์ที่ไม่มีระบบย่อย sftp จะทำลายงาน scp รุ่นเก่าโดยไม่แจ้งให้ทราบ การแก้ไขกำลังเปิดใช้งานระบบย่อย ไม่ใช่การย้อนกลับนิสัย

ฉันสามารถย้ายไฟล์เดียวโดยไม่มี sftp เลยได้หรือไม่

ใช่: cat bigfile.bin | ssh user@host 'cat > /tmp/bigfile.bin' เป็นการถ่ายโอนแบบไปป์เดียวแบบพกพา ไม่มีเรซูเม่ ไม่มีข้อมูลเมตา แต่ทำงานได้ทุกที่ที่ SSH ทำงาน ซึ่งเป็นกรณีการใช้งานของมันอย่างแน่นอน

sftp ช้ากว่า scp หรือ rsync หรือไม่

บางครั้ง: โอเวอร์เฮดของโปรโตคอลต่อไฟล์และการบัฟเฟอร์เริ่มต้นจะแสดงในแผนผังไดเร็กทอรีจำนวนมาก วัดลิงก์ของคุณก่อนที่จะเพิ่มประสิทธิภาพ และจำไว้ว่า rsync มักจะตอบกลับเมื่อการร้องเรียน 'ช้าเกินไป'

ฉันจะให้การอัพโหลดของบุคคลที่สามโดยไม่ต้องเข้าถึงเชลล์ได้อย่างไร

บัญชีเฉพาะที่มี ChrootDirectory, ForceCommand ภายใน-sftp และ subdir ที่เขียนได้ รวมถึงการตรวจสอบคีย์ การจำคุก การหมดเวลา และบันทึก ซึ่งเป็นดรอปบ็อกซ์แทนที่จะเป็นคำเชิญ

Kinetikatech ช่วยเรื่อง คำสั่ง linux และทักษะเชลล์ ได้อย่างไร

ข้อเสนอง่าย ๆ แบบนี้: คำสั่งและพฤติกรรมการเขียนสคริปต์ที่ตัดสินใจว่าผู้ดูแลระบบจะใช้งานเซิร์ฟเวอร์หรือต่อสู้กับเซิร์ฟเวอร์: ค้นหา แปลง ถ่ายโอน และดูแลข้อความและกระบวนการด้วยเครื่องมือที่อยู่ในทุกการติดตั้งฐาน ส่งให้บริการ ความปลอดภัยเซิร์ฟเวอร์ Linuxและการจัดการเซิร์ฟเวอร์ ของเราดูแล มีการประเมินอย่างเหมาะสม ลงมือแบบสะอาด และมีคนเฝ้าตลอด 24 ชั่วโมง

คุยกับช่างเทคนิค

เซิร์ฟเวอร์มีปัญหา? เว็บถูกแฮก? โหลดช้า?

ตอบสนองเหตุกรณ์ฉุกเฉินใน 30 นาที — ตลอด 24 ชั่วโมง ทุกวัน

ขอความช่วยเหลือฉุกเฉิน support@kinetikatech.com