โดยปกติฉันใช้scp
คำสั่งเพื่อถ่ายโอนไฟล์บน * nixes
ความแตกต่างระหว่าง SFTP และ SCP คืออะไร? ทั้งคู่ไม่ได้ทำงานกับ SSH หรือ
โดยปกติฉันใช้scp
คำสั่งเพื่อถ่ายโอนไฟล์บน * nixes
ความแตกต่างระหว่าง SFTP และ SCP คืออะไร? ทั้งคู่ไม่ได้ทำงานกับ SSH หรือ
คำตอบ:
สรุป SCP สามารถใช้สำหรับถ่ายโอนไฟล์เท่านั้นและไม่สามารถโต้ตอบได้ (กล่าวคือทุกอย่างจะต้องระบุในบรรทัดคำสั่ง) SFTP มีความละเอียดมากขึ้นและอนุญาตให้คำสั่งแบบโต้ตอบทำสิ่งต่าง ๆ เช่นการสร้างไดเรกทอรีการลบไดเรกทอรีและไฟล์ (ทั้งหมดขึ้นอยู่กับการอนุญาตของระบบแน่นอน) ฯลฯ
ForceCommand internal-sftp
เท่านั้น ฉันคิดว่าPermitTTY no
ยังป้องกันการเข้าถึง scp แต่อนุญาตให้เข้าถึง sftp แม้ว่าฉันจะพิมพ์รหัสผ่านผิดพลาดทุกครั้งที่ฉันพยายาม แต่สองสิ่งนี้ไม่ควรป้องกันการ sftp ที่มา: ประสบการณ์ส่วนตัว
จากWikipedia :
เมื่อเทียบกับโปรโตคอล SCP รุ่นก่อนหน้าซึ่งอนุญาตให้ถ่ายโอนไฟล์ได้เท่านั้นโปรโตคอล SFTP ช่วยให้สามารถทำงานกับไฟล์ระยะไกลได้หลากหลาย - มันเหมือนกับโปรโตคอลระบบไฟล์ระยะไกลมากกว่า ความสามารถพิเศษของไคลเอนต์ SFTP เมื่อเปรียบเทียบกับไคลเอนต์ SCP รวมถึงการถ่ายโอนการขัดจังหวะรายชื่อไดเรกทอรีและการลบไฟล์จากระยะไกล [1] ด้วยเหตุผลเหล่านี้จึงค่อนข้างง่ายที่จะใช้ไคลเอนต์ GUI SFTP เมื่อเทียบกับไคลเอนต์ GUI SCP
และ
แม้ว่าทั้ง SCP และ SFTP จะใช้การเข้ารหัส SSH เดียวกันในระหว่างการถ่ายโอนไฟล์ที่มีค่าใช้จ่ายทั่วไปเท่ากัน แต่โดยทั่วไปแล้ว SCP นั้นเร็วกว่า SFTP ในการถ่ายโอนไฟล์โดยเฉพาะอย่างยิ่งในเครือข่ายที่มีความล่าช้าสูง สิ่งนี้เกิดขึ้นเนื่องจาก SCP ใช้อัลกอริธึมการถ่ายโอนที่มีประสิทธิภาพมากกว่าซึ่งไม่จำเป็นต้องรอการยืนยันแพ็คเก็ต สิ่งนี้นำไปสู่ความเร็วที่เร็วขึ้น แต่มีค่าใช้จ่ายที่ไม่สามารถขัดขวางการถ่ายโอนได้ดังนั้นไม่เหมือนกับ SFTP การถ่ายโอน SCP ไม่สามารถยกเลิกได้โดยไม่ต้องหยุดเซสชัน
จากมุมมองบรรทัดคำสั่งอย่างหมดจด:
ข้อแตกต่างที่สำคัญอื่น ๆ ระหว่างคำสั่ง 2 คือsftpไม่สามารถใส่ไฟล์โลคัลไปยังตำแหน่งรีโมตโดยใช้บรรทัดคำสั่งเดียวแม้ว่าจะสามารถรับไฟล์รีโมตได้ในขณะที่scpสามารถทำทั้งสองอย่างได้
sftp user@host:/path/to/remote.file [/path/to/local.file]
scp user@host:/path/to/remote.file [/path/to/local.file]
scp /path/to/local.file user@host:[/path/to/remote.file]
sftp {user}@{host}:{remote_dir} <<< $'put {local_file_path}'
SSH ( S ecure SH ell) เป็นโปรโตคอลเครือข่ายเข้ารหัสลับเพื่ออนุญาตให้เข้าสู่ระบบจากระยะไกลและบริการเครือข่ายอื่น ๆ เพื่อทำงานอย่างปลอดภัยผ่านเครือข่ายที่ไม่ปลอดภัย
ความแตกต่าง: SFTP ทำงานในโหมดโต้ตอบ (เซสชัน) และ SCP ทำงานบนแบบไม่โต้ตอบ การใช้ SFTP ทำให้เราสามารถเข้าถึงระบบไฟล์ระยะไกลเช่นการสร้างการลบและการแสดงรายชื่อไฟล์
ความคล้ายคลึงกัน:ทั้งสอง SCP ( S ecure CลอกP rotocol) และSFTP ( S SH F ile T ransfer P rotocol) เป็นโปรโตคอลเครือข่ายที่สนับสนุนการจัดการไฟล์ระหว่างโฮสต์บนเครือข่าย ทั้งสองใช้ SSH
ความแตกต่างส่วนใหญ่ของทั้งสองโปรโตคอลนั้นได้รับการกล่าวถึงแล้วในคำตอบอื่น ๆ และอื่น ๆ อีกมากมาย verbosely ในhttps://unix.stackexchange.com/q/8707/19088
ความแตกต่างอีกอย่างหนึ่งตามเอกสารของขดคือโปรโตคอล SCP นั้นไม่สามารถพกพาได้และมักจะทำงานระหว่างระบบยูนิกซ์เท่านั้น
อย่างไรก็ตามCurlใช้ทั้งโปรโตคอลและไม่เหมือนกับการใช้งานไคลเอนต์ OpenSSH SFTP ที่เป็นค่าเริ่มต้นมันไม่สามารถโต้ตอบได้ทั้ง SFTP และ SCP
และโปรดทราบว่ายังมีโปรโตคอลFISHซึ่งช่วยให้คุณถ่ายโอนไฟล์ผ่าน SSH โดยไม่ต้องใช้ SCP หรือ SFTP เท่าที่ผมรู้ว่าปลาจะไม่เป็นที่นิยมมากในปัจจุบันการดำเนินผู้จัดการไฟล์เพียงไม่กี่ ( ผู้บัญชาการเที่ยงคืนและบางอย่างที่ KDE-based) และlftp