ทั้งสอง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ควรบรรลุผลเหมือนกัน