ทั้งสองsftp-server
และinternal-sftp
เป็นส่วนหนึ่งของ OpenSSH sftp-server
เป็นไบนารีแบบสแตนด์อโลน internal-sftp
เป็นเพียงคำสำคัญการกำหนดค่าที่บอกsshd
ให้ใช้รหัสเซิร์ฟเวอร์ SFTP ในตัวsshd
แทนที่จะเรียกใช้กระบวนการอื่น (โดยทั่วไปsftp-server
)
จากมุมมองการทำงานsftp-server
และinternal-sftp
เกือบจะเหมือนกัน พวกเขาสร้างขึ้นจากซอร์สโค้ดเดียวกัน
ประโยชน์หลักของการinternal-sftp
เป็นที่จะต้องใช้ไฟล์ไม่สนับสนุนเมื่อใช้กับคำสั่งChrootDirectory
คำพูดจากsshd_config(5)
หน้าคน :
ข้อดีอีกอย่างของinternal-sftp
ประสิทธิภาพคือไม่จำเป็นต้องเรียกใช้กระบวนการย่อยใหม่
มีการinternal-sftp
เพิ่มมากขึ้นในภายหลัง (OpenSSH 4.9p1 ในปี 2008?) มากกว่าsftp-server
ไบนารีแบบสแตนด์อโลนแต่ตอนนี้เป็นค่าเริ่มต้นแล้ว
ฉันเชื่อว่าไม่มีเหตุผลที่จะใช้sftp-server
สำหรับการติดตั้งใหม่
อาจดูเหมือนว่าsshd
จะสามารถใช้งานได้โดยอัตโนมัติinternal-sftp
เมื่อพบsftp-server
ว่ามีฟังก์ชั่นการใช้งานเหมือนกันและinternal-sftp
มีข้อได้เปรียบเหนือกว่า แต่มีบางกรณีที่มีความแตกต่าง
ตัวอย่างไม่กี่:
ผู้ดูแลระบบอาจอาศัยการกำหนดค่าล็อกอินเชลล์เพื่อป้องกันไม่ให้ผู้ใช้บางคนเข้าสู่ระบบการสลับไปยังinternal-sftp
จะข้ามข้อ จำกัด เนื่องจากเชลล์ล็อกอินไม่เกี่ยวข้องอีกต่อไป
ใช้sftp-server
ไบนารี (เป็นกระบวนการแบบสแตนด์อโลน) คุณสามารถใช้ hacks บางอย่างเช่นการทำงาน SFTP sudo
ภายใต้
สำหรับ SSH-1 (ถ้าใครยังใช้อยู่) Subsystem
คำสั่งไม่เกี่ยวข้องเลย ไคลเอนต์ SFTP ที่ใช้ SSH-1 จะบอกเซิร์ฟเวอร์อย่างชัดเจนไบนารีใดที่เซิร์ฟเวอร์ควรรัน ดังนั้นไคลเอนต์ SSH-1 SFTP ดั้งเดิมจึงมีsftp-server
ชื่อรหัสยาก
ForceCommand internal-sftp
ควรบรรลุผลเหมือนกัน