ફાઇલ ટ્રાન્સ્ફર પ્રોટોકોલ

ફાઇલ ટ્રાન્સ્ફર પ્રોટોકોલ (અંગ્રેજી: File Transfer Protocol – FTP) એક પ્રમાણભૂત નેટવર્ક પ્રોટોકોલ છે જે TCP-આધારિત નેટવર્કમાં (જેમકે ઈન્ટરનેટ) એક હોસ્ટથી બીજા હોસ્ટ સુધી ફાઈલનું સ્થળાંતર કરે છે. FTPનું બંધારણ ક્લાયન્ટ-સર્વર સ્થાપત્ય પર આધારિત છે તેમજ સર્વર અને ક્લાયન્ટ વચ્ચે ડેટા જોડાણો થાય છેForouzan, B.A. (2000). TCP/IP: Protocol Suite. 1st ed. New Delhi, India: Tata McGraw-Hill Publishing Company Limited.. FTP જોડાણ માટે આવેલા ક્લાયન્ટોને ક્લીયર-ટેક્ષ સાઈન-ઇન પ્રોટોકોલની મદદથી અધિકૃત કરે છે પરંતુ, જો સર્વરને અજ્ઞાત ઓળખથી પણ જોડવા રૂપરેખાંકિત કર્યું હોયતો તે આવા જોડાણને અનુમતિ આપે છે. સુરક્ષિત પ્રેષણ(પ્રવહન) માટે તે ઉપભોક્તા અધિકૃત નામ અને તેના પાસવર્ડને ગોપનીય રાખવા માટે FTP વારંવાર SSL/TLS (FTPS) જેવા ક્રિપ્ટોગ્રાફિક (સંકેતલીપીવાળું) પ્રોટોકોલોનો ઉપયોગ કરે છે. આના બદલે SSH ફાઈલ ટ્રાન્સફર પ્રોટોકોલ (SFTP) નો પણ ઉપયોગ થાય છે, પણ તકનીકી રીતે તે અલગ હોય છે.

પહેલાના FTP ક્લાયન્ટ સોફ્ટવેરનો વિકાસ ઓપરેટિંગ સિસ્ટમના ગ્રાફીકલ ઇન્ટરફેસ બન્યા તે પહેલા થયો હતો અને તે આજે લગભગ બધીજ ઓપેરેટીંગ સિસ્ટમ જેવીકે, વિન્ડોઝ, લિનક્સ અને યુનિક્સ જોડે આવે છે.   અત્યાર સુધીમાં ડેસ્કટોપ, સર્વર, મોબાઈલ ઉપકરણો અને હાર્ડવેર માટે ડઝનબંધ FTP ક્લાયન્ટો અને ઓટોમેશન એપ્લિકેશનો બની છે, અને વેબ-પેજના સંપાદન જેવી સેંકડો એપ્લીકેશનોમાં FTP સંસ્થાપિત થયેલ છે.

 ઈતિહાસ 
મૂળભૂત રીતે ફાઈલ ટ્રાન્સફર પ્રોટોકોલનું વિશિષ્ટ વિગતવર્ણનનું લેખન અભય ભૂષણ દ્વારા થયું હતું જે RFC 114 પર ૧૬ એપ્રિલ ૧૯૭૧માં પ્રકાશિત થયું હતું અને પછીથી RFC 765 (જુન ૧૯૮૦) અને RFC 959 (ઓક્ટોબર ૧૯૮૫) દ્વારા બદલાયું જે હાલના FTPનું વિશિષ્ટ વિગતવર્ણન કરે છે. RFC 959માં કેટલાંક સૂચિત સુધારાઓ થયા, દા.ત. RFC 2228 (જુન ૧૯૯૭)માં સુરક્ષા એક્ષ્ટેન્શન માટે દરખાસ્ત અને RFC 2428 (સપ્ટેમ્બર ૧૯૯૮)માં IPv6ના સમર્થન ઉમેરવા અને નવીન પ્રકારની પરોક્ષ સ્થિતિને વ્યાખ્યાયિત કરાયું છે.

 પ્રોટોકોલનું નિરીક્ષણ 
FTP બીજા ક્લાયન્ટ/સર્વર એપ્લીકેશનોથી તેની બે હોસ્ટ વચ્ચેના જોડાણ બાબતે અલગ પડે છે. તે બે હોસ્ટ વચ્ચે બે રીતે જોડાણ કરે છે : એક જોડાણ ડેટા સ્થાનાંતર કરવા ઉપયોગી છે અને બીજું જોડાણ સૂચનાઓ (આદેશ અને પ્રતિભાવ)ને નિયંત્રિત કરે છે. આ ડેટા અને આદેશનું જુદું જુદું નિયંત્રિત થવું FTPને વધુ અસરકારક બનાવે છે. FTP TCP ના બે જાણીતા પોર્ટનો ઉપયોગ કરે છે : પોર્ટ ૨૧ કે જે જોડાણ નિયંત્રણ માટે વપરાય છે અને પોર્ટ ૨૦ ડેટા જોડાણ (પરિવહન) માટે વપરાય છે. 


 સંચાર અને માહિતી સ્થાનાંતર 

FTP ક્લાયન્ટ ત્રણ ઘટકો ધરાવે છે: વપરાશકર્તા ઇન્ટરફેસ, ક્લાયન્ટ નિયંત્રણ કાર્યવાહી, ક્લાયન્ટ ડેટા સ્થાનાંતર પ્રક્રિયા. જયારે સર્વર બે ઘટકો ધરાવે છે : સર્વર નિયંત્રણ કાર્યવાહી, સર્વર ડેટા સ્થાનાંતર પ્રક્રિયા. નિયંત્રણ કાર્યવાહીઓ વચ્ચે નિયંત્રણ જોડાણ બને છે. ડેટા સ્થાનાંતર પ્રક્રિયાઓ વચ્ચે ડેટા જોડાણ બને છે. 

નિયંત્રણ જોડાણ સમગ્ર અરસપરસ FTP સત્ર દરમિયાન જોડાયેલ રહે છે. ડેટા જોડાણ દરેક ફાઈલના સ્થાનાંતર અનુસાર ખુલે અને બંધ થાય છે. જયારે વપરાશકર્તા જયરે FTP સત્ર ચાલુ કરે ત્યારે નિયંત્રણ જોડાણ ચાલુ થાય છે. જ્યારે નિયંત્રણ જોડાણ ખુલ્લું હોય ત્યારે ડેટા જોડાણ દરેક ફાઈલ મોકલતી વખતે એક થી વધારે વાર ખુલે છે અને બંધ થાય છે. 
જયારે ક્લાયન્ટ સર્વર જોડે જોડાણની વિનંતી મોકલે છે ત્યારે, સર્વર નિયંત્રણ જોડાણ મારફતે ત્રિ-અંકીય સ્થિતિ કોડથી પ્રતિક્રિયા આપે છે. દા.ત. “૨૦૦” (કે “૨૦૦ OK”) એટલેકે, પાછલો આદેશ સફળ થયો છે. આ સંખ્યાઓ (200) પ્રતિક્રિયા માટે કોડ અને વૈકલ્પિક ટેકસ્ટ (“OK”) માનવ માટે વાંચનીય સમજુતી કે વિનંતી દર્શાવે છે.  ડેટા જોડાણ પર સ્થાનાંતર થઇ રહેલા ડેટાને વચ્ચેથી અટકવવા નિયંત્રણ જોડાણ પરથી અવરોધ આદેશ મોકલી શકાય છે. 

FTP તેના ડેટાના જોડાણના આધારે સક્રિય કે પરોક્ષ સ્થિતિમાં ચાલવી શકાય છે.  જોડાણની સક્રિય સ્થિતિમાં ક્લાયન્ટ સર્વર સુધી TCP નિયંત્રણ જોડાણ બનાવે છે અને સર્વર એ ક્લાયન્ટનું IP એડ્રેસ મોકલે છે તથા એક ઇચ્છાધીન ક્લાયન્ટ પોર્ટ નંબર આપે છે અને સર્વર તરફથી આ TCP જોડાણ પર આ ક્લાયન્ટના IP એડ્રેસ અને પોર્ટ નંબર ડેટા પરિવહનની રાહ જુએ છે.

જો ક્લાયન્ટ ફાયરવોલથી સુરક્ષિત હોય અને પોતાની તરફ આવતા જોડાણોને સ્વીકારી ના શકતું હોય તેવી સ્થિતિમાં તે પરોક્ષ (Passive) રીતે જોડાણ શક્ય બનાવે છે. આ પરોક્ષ સ્થિતિમાં ક્લાયન્ટ PASV આદેશનો ઉપયોગ કરી સર્વર સાથે નિયંત્રણ જોડાણ બનાવે છે અને તે(ક્લાયન્ટ) સર્વરના IP એડ્રેસ અને સર્વર પોર્ટ નંબર સર્વર પાસેથી મેળવે છે.  જેના આધીન ક્લાયન્ટ સર્વરને પોતાનો ઇચ્છાધીન પોર્ટ નંબર મોકલી આપે છે. Postel, J., & Reynolds. J. (October 1985). . In The Internet Engineering Task Force. ૧૯૯૮ માં આ બંને (સક્રિય / પરોક્ષ) સ્થિતિઓને IPv6 ને સમર્થન આપવા સુધારવામાં આવી હતી. તે સમયે વધુ ફેરફારો પરોક્ષ મોડમાં તેને વિસ્તૃત કરવા કરાયા હતા. Allman, M. & Metz, C. & Ostermann, S. (September 1998). RFC 2428. In The Internet Engineering Task Force. 

નેટવર્ક પર ડેટા ટ્રાન્સફર કરતી વખતે ચાર ડેટા પરિવહનો નો ઉપયોગ થાય છે. Clark, M.P. (2003). Data Networks IP and the Internet. 1st ed. West Sussex, England: John Wiley & Sons Ltd!

ASCII મોડ : ટેક્સ્ટ માટે ઉપયોગ થાય છે. જયારે મોકલનાર હોસ્ટ પરથી ડેટાનું પ્રસારણ થવા પહેલા જો જરૂરી હોયતો તેનું “૮-બીટ-ASCII” માં રૂપાંતરણ થાય છે અને વળી પાછું મેળવનાર હોસ્ટને ડેટા મળે ત્યારે તેની ફરીથી રજૂઆત થાય છે. પરિણામે, આ રીતમાં સાદા-લખાણ (Plain Text) વાળી ફાઈલ સિવાય બીજા ડેટા માટે અયોગ્ય છે. 
છબી(ઈમેજ) મોડ (સામાન્ય રીતે બાયનરી મોડથી ઓળખાય છે): આ રીતમાં મોકલનાર ફાઈલને બાઈટમાં મોકલે છે અને તેને મેળવનાર બાઈટ મળતા આ બાઈટોનો બાઈટસ્ટ્રીમમાં સંગ્રહ(store) કરે છે. (FTP ના દરેક અમલીકરણમાં ઈમેજ મોડને સમર્થન કરવાની ભલામણ કરી છે.)
EBCDIC મોડ : આ રીતમાં બે હોસ્ટો વચ્ચે સાદા-ટેકસ્ટના ડેટા ની આપલે માં EBCDIC ના અક્ષર સમૂહ નો ઉપયોગ થાય છે. બાકીની કાર્યપ્રણાલી ASCII મોડ જેવી જ હોય છે.
સ્થાનિક (લોકલ) મોડ : સમાન સુયોજનો સાથે બે કમ્પ્યુટર્સ ડેટાને ASCII રૂપાંતરિત માલિકી વગરના બંધારણમાં મોકલવા માટે પરવાનગી આપે છે. ટેકસ્ટ ફાઈલો માટે જુદા જુદા બંધારણ નિયંત્રણ અને રેકોર્ડ માળખું વૈકલ્પિક ધોરણે આપવામાં આવે છે. આ સુવિધાઓ TELNET કે ASA માટેની ફાઈલોને સવલત આપવા માટે કરાઈ છે. 

ડેટા સ્થાનાંતર ત્રણ રીતમાંથી કોઈ એક રીતે થાય છે. 

પ્રવાહ રીત (સ્ટ્રીમ મોડ) : ડેટાને અવિરત પ્રવાહ સ્વરૂપે મોકલાય છે, FTP તેના પર કોઈપણ પ્રક્રિયા કરતુ નથી. તેના બદલે આ બધ્ધિ પ્રક્રિયા TCP માટે છોડી દે છે. આ રીતમાં જ્યાંસુધી ડેટાનું રેકોર્ડમાં વિભાજન થતું નથી ત્યાં સુધી End-of-File એવા કોઇપણ સૂચકની જરૂર પડતી નથી.
અવરોધિત રીત (બ્લોક મોડ) : આ રીતમાં FTP ડેટાને કેટલાક બ્લોકમાં(બ્લોક હેડર, બાઈટ ગણતરી અને ડેટા ફિલ્ડ) વિભાજીત કરે છે અને ત્યારબાદ TCP ને આપી દે છે. 
સંકોચિત રીત (કોમ્પ્રેસડ મોડ) : આ રીતમાં ડેટાને એક અલ્ગોરીથમથી સકોચિત કરવામાં આવે છે. (મોટેભાગે Run-lengh એનકોડીંગ)

 પ્રવેશ 
FTP પ્રવેશ માટે રાબેતા મુજબ વપરાશકર્તાના નામ અને પાસવર્ડ પ્રણાલીનો ઉપયોગ કરી પરવાનગી આપે છે.  વપરાશકર્તાનું નામ USER આદેશ દ્વારા સર્વર સુધી પહોચાડાય છે, અને PASS આદેશ દ્વારા પાસવર્ડને મોકલાય છે.  જો ક્લાયન્ટ દ્વારા અપાયેલ માહિતી (યુસરનેમ / પાસવર્ડ) સર્વર સ્વીકારી લે તો, સર્વર ક્લાયન્ટને અભિનંદન સંદેશો પાઠવે છે અને સત્રની શરૂવાત કરે છે.  વપરાશકારો પ્રવેશ ઓળખપત્ર વગર પણ સર્વરમાં પ્રવેશ પામી શકે તેમાટે સર્વરને તે માટે રૂપરેખાંકિત (configure) હોવા જોઈએ. સર્વર કેટલાક સત્રોને માર્યાદિત ઉપયોગ માટે સત્તા આપે છે. 

 અપરિચિત FTP 
FTP સેવા પૂરી પાડનાર હોસ્ટ અપરિચિત FTP સેવા પૂરી પાડે શકે છે.  જયારે સર્વર દ્વારા વપરાશકારનું નામ પૂછવામાં આવતા વપરાશકાર ‘anonymous’ (કેટલાક FTP સર્વરમાં તે લોઅર-કેસ અને કેસ સંવેદનશીલ હોય શકે) ટાઈપ કરી FTPની સેવા મેળવી શકે છે. (જો સર્વર દ્વારા સેવા રૂપરેખાંકિત કરી હોયતો જ) જોકે પાસવર્ડ તરીકે વપરાશકારનું ઈ-મેઈલ એડ્રેસ આપવાનું રહે છે.  જેની તાત્કાલિક કોઈપણ જાતની ચકાસણી થતી નથી.  ઘણા FTP સર્વરો સોફ્ટવેરના અપડેટો પૂરા પાડવા આવી અપરિચિત FTP સેવાનો ઉપયોગ કરે છે. 

 NAT અને ફાયરવોલ ટ્રાવર્સલ 
સામાન્ય રીતે, ક્લાયન્ટ દ્વારા PORT આદેશ મળ્યા બાદ, FTP ડેટા સ્થાનાંતર કરવા સર્વર ક્લાયન્ટને ફરી જોડે છે. આનાથી NAT અને ફાયરવોલ બંનેને તકલીફ થાય છે, જેઓ ઈન્ટરનેટ દ્વારા અંદરના હોસ્ટ તરફ આવતા જોડાણોને પરવાનગી આપતું નથી.  NAT માટે વધારાની જટિલતા છે કે, IP એડ્રેસ અને પોર્ટ નંબરનું પ્રતિનિધિત્વ PORT આદેશમાં હોય છે જે હોસ્ટનો ખાનગી IP એડ્રેસ હોય છે જયારે તે ઈન્ટરનેટ પર પોતાના જાહેર IP એડ્રેસથી ઓળખાતું હોય છે. (NAT નું કાર્ય ખાનગી IP એડ્રેસ નું જાહેર IP એડ્રેસમાં અનુવાદ કરી આપવાનું છે.)
આ સમસ્યા માટે બે વિચાર છે : એક છે કે, FTP ક્લાયન્ટ અને FTP સર્વર PASV આદેશ નો ઉપયોગ કરે જેથી FTP ક્લાયન્ટ થી સર્વર તરફ ડેટા જોડાણ બને.  આનો ઉપયોગ વ્યાપક રીતે આધુનિક FTP ક્લાયન્ટોમાં થાય છે. બીજો વિચાર NAT માટે છે જેમાં એપ્લીકેશન-લેવલ ગેટવે ની મદદ થી PORT આદેશનું મૂલ્ય બદલી નાખવામાં આવે છે. 
 HTTPથી ભિન્નતા 
FTPને એક out-of-band પ્રોટોકોલ તરીકે ગણવામાં આવે છે, જયારે તેનાથી ભિન્ન HTTPને in-band પ્રોટોકોલ તરીકે ગણવામાં આવે છે. Kurose, J.F. & Ross, K.W. (2010). Computer Networking. 5th ed. Boston, MA: Pearson Education, Inc.


 વેબ બ્રાઉસર દ્વારા સમર્થન 
મોટે ભાગેના વેબ બ્રાઉસર FTP સર્વર પર રહેલી ફાઈલોને મેળવી શકવા સક્ષમ હોય છે, છતાં તેઓ FTPS જેવા પ્રોટોકોલ એક્સટેન્સનોનું સમર્થન કરતા નથી. Matthews, J. (2005). Computer Networking: Internet Protocols in Action. 1st ed. Danvers, MA: John Wiley & Sons Inc. જયારે FTP ને HTTPની જેમ વેબ બ્રાઉસરમાં એક URLની જેમ લખવામાં આવતા તે રીમોટ સર્વર પર રહેલી ફાઈલો કે ડેટા ને વેબ સામગ્રીની જેમ પ્રદશિત કરે છે. FireFTP એક સંપૂર્ણ લક્ષણોવાળી FTP ક્લાઈન્ટ છે, જે એક્સ્ટેંશનની ફોર્મમાં ફાયરફોક્સ અંદર ચલાવી શકાય છે.

 સિન્ટેક્ષ 
FTP URL ની સિન્ટેક્ષનો ઉલ્લેખ RFC 1738માં કરેલ છે  
તે અનુસાર તેનો કોડ ftp://[<user>[:<password>]@]<host>[:<port>]/<url-path></code>  ઉદાહરણ તરીકે, 

"ftp ://public.ftp-servers.example.com/mydirectory/myfile.txt</code>"

કે

"ftp ://user001:secretpassword@private.ftp-servers.example.com/mydirectory/myfile.txt"

વધારાની માહિતી જેવીકે, વપરાશકારનું નામ, પાસવર્ડ વિષયને લગતી માહિતી જે તે બ્રાઉસરના દસ્તાવેજોમાંથી મળી રહે છે. મૂળભૂત રીતે, મોટેભાગેના વેબ બ્રાઉસર પેસીવ (Passive) PASV પદ્ધતિનો ઉપયોગ કરે છે, જેથી ફાયરવોલની અંદર છેવાડે સુધી પહોચવામાં સરળતા રહે છે.

 સલામતી 
આજના ધોરણ પ્રમાણે જોવા જઈએતો FTPની ડીઝાઇન એક સુરક્ષિત પ્રોટોકોલની નથી અને તેની સુરક્ષામાં ઘણી નબળાઈઓ રહેલી છે. Securing FTP using SSH. Retrieved from http://www.nurdletech.com/ftp.html  ૧૯૯૯ના મે મહિનામાં  RFC 2577 ના લેખકોએ તેના નીચે પ્રમાણેની નબળાઈઓ વર્ણવી હતી. 

બરૂટ ફોર્સ એટેક (Brute Force Attacks) 
બાઉન્સ હુમલા (Bounce Attacks)
પેકેટ કેપ્ચર (સ્નીફિંગ) (Packet Capture)
પોર્ટ ચોરી  (Port Stealing)
વિડંબન હુમલા (Spoof Attacks)
વપરાશકાર-નામ સુરક્ષા (Username Protection)

FTP તેના ટ્રાફિકને એનક્રિપ્ટ કરી શકતું નથી; તેના બધા પ્રસારણ સ્પષ્ટ ટેક્સ્ટમાં થાય છે. વપરાશકારોના નામ, પાસવર્ડ, આદેશો અને ડેટાને કોઈપણ પેકેટ કેપ્ચર(સ્નીફિંગ)ની મદદથી સરળતાથી વાંચી શકે છે. ઘણા ઈન્ટરનેટ પ્રોટોકોલ (જેવાકે SMTP, TelNet, POP અને IMAP) માટે આ સમસ્યા સામાન્ય છે, આ પ્રોટોકોલોની ડીઝાઇન માં TLS કે SSLજેવા એનક્રિપ્શન તંત્ર પહેલા તૈયાર કરી હતી. આ સમસ્યાનો સરળ ઉકેલ એ છેકે તમે તેની “સુરક્ષિત” (Secure) આવૃતિઓનો ઉપયોગ કરો. (દા.ત. FTP માટે FTPS, Telnet માટે TelnetS વિગેરે) અથવા બીજા કોઈ વધારે સુરક્ષિત પ્રોટોકોલ જે આ કાર્ય કરી શકતા હોય જેવા કે, SFTP/SCP સાધનો Secure Shell પ્રોટોકોલના અમલીકરણોનો સમાવેશ કરે છે.

 સલામત FTP 
ફાઈલોને સુરક્ષિત રીતે સ્થાનાંતર કરવાની કેટલીક પદ્ધતિઓ છે જે “સુરક્ષિત FTP” (Secure FTP)થી ઓળખાય છે. 

 FTPS 
ExplicitFTPS એ FTP ધોરણનું વિસ્તરણ કરી આપે છે જે ક્લાયન્ટો દ્વારા FTP સત્રને એનક્રિપ્ટ કરવાની વિનંતી કરી શકવાની પરવાનગી આપે છે. આ AUTH TLS આદેશથી થાય છે. જે સત્ર TLS વિનંતી નથી આપતો તેને જોડાણનો સ્વીકાર કરવો કે અસ્વીકાર તેને માટે સર્વરમાં જોગવાઈ હોય છે. આ પ્રોટોકોલના વિસ્તરણ સૂચિત ધોરણો RFC 4217માં વ્યાખ્યાયિત છે. Implicit FTPS એ FTP નું અપ્રચલિત ધોરણ છે, જે SSLકે TLS ના ઉપયોગથી જોડાણ કરે છે. આના માટે સાદા FTP થી અલગ પોર્ટ વાપરવાનું સૂચવ્યું હતું.
 SFTP 
SFTP એટલેકે, “SSH ફાઈલ ટ્રાન્સફર પ્રોટોકોલ” પણ FTP ની જેમ ફાઈલ મોકલવા અને તેમાં વપરાશકારો માટે FTP જેવા આદેશોનો ગણ છે. SFTP કે સુરક્ષિત FTP ફાઈલ ટ્રાન્સફર કરવા સુરક્ષિત શેલ (Secure Shell) નો ઉપયોગ કરે છે. FTP ના ધોરણની વિપરીત, તે ફાઈલના ડેટા ઉપરાંત આદેશોને પણ એનક્રિપ્ટ કરે છે, સાથે સાથે ખુલ્લા નેટવર્કમાં પ્રસારિત થતા પાસવર્ડ અને બીજા સવેદનશીલ ડેટાને સુરક્ષા પૂરી પાડે છે. તેની કાર્યપ્રણાલી FTP જેવી હોય છે, પણ તે FTPથી જુદા પ્રોટોકોલોનો ઉપયોગ કરે છે. મૂળભૂત FTP ક્લાયન્ટો SFTP સાથે જોડાણ કરી શકતા નથી કે SFTP ના ક્લાયન્ટો મૂળભૂત FTP સર્વર જોડે જોડાણ કરી શકતા નથી.
SSH પર FTP (SFTP નહિ) 
SSH પર FTP (SFTP નહિ) જે SSH જોડાણ પર એક મૂળભૂત (સાદા) FTPનું સત્ર બનાવે છે. કારણકે, FTP બહુવિધ TCP જોડાણોનો ઉપયોગ કરે છે. ઘણા SSH ક્લાયન્ટો જયારે નિયંત્રણ ચેનલ બનાવે છે (પોર્ટ ૨૧ પર ક્લાયન્ટ-થી-સર્વર જોડાણ) ત્યારે તેને સુરક્ષા આપશે. જયારે ડેટા સ્થાનાંતર થાય ત્યારે FTP સોફ્ટવેર નિયંત્રણ ચેનલ બંધ કરી નવી ડેટા ચેનલો બનાવે છે; જે SSH જોડાણથી ઉપરવટ જાય છે તેથી ડેટા ચેનલોમાં કોઈપણ પ્રકારની ગુપ્તતા કે સંપૂર્ણ રક્ષિત વિ. હોતા નથી. 
નહીતર, SSH ક્લાયન્ટ સોફ્ટવેર પાસે FTP પ્રોટોકોલને લાગતું જ્ઞાન હોવું જરૂરી છે, જેવું કે તે FTP ડેટા ચેનલો માટે અપરિચિતો દ્વારા ખુલેલા નવા પેકેટ ફોરવર્ડીંગ પર નજર રાખવા અને FTP નિયંત્રણ ચેનલના સંદેશાને ફરીથી લખવા વિ. નીચેના સોફ્ટવેર ઉદાહરણો આ જાતની સ્થિતિમાં ટેકો આપે છે.
Tectia ConnecSecure (Win/Linux/Unix) ના SSH Communications Security’s software sute.
Tectia Server for IBM z/OS of SSH Communications Security's software suite
FONC (the GPL licensed) 
 Co:Z FTPSSH Proxy
SSH પર FTPને કોઈકવાર Secure FTP કહેવામાં આવે છે,

 FTP આદેશનું લીસ્ટ 
FTP સર્વરને આપવામાં આવતા FTP આદેશો નીચે મુજબ છે. આ લીસ્ટમાં IETF એ પ્રમાણિત કરેલ RFC 959ના આદેશો નો સમાવેશ કર્યો છે. નોંધીલો કે, મોટે ભાગેના આદેશોના ગણ FTP ક્લાયન્ટો તેના વપરાશકર્તાઓ માટે બનાવે છે. દા.ત. GET એ વપરાશકારોનો સામાન્ય આદેશ છે જે સર્વરમાંથી ફાઈલને ડાઉનલોડ કરવા માટે વાપરાય છે. જયારે તેના માટે રો આદેશ RETR છે. 
 આદેશ RFCવર્ણન ABOR  &1000000 સક્રિય ફાઇલ ટ્રાન્સફર અડધેથી બંધ કરવા ACCT  &1000000 એકાઉન્ટ માહિતી ADAT  &1002228RFC 2228 સત્તાધિકરણ / સુરક્ષા માહિતી ALLO  &1000000 પૂરતી ડિસ્ક જગ્યા પ્રાપ્ત ફાઇલ માટે ફાળવો APPE  &1000000 ઉમેરવું AUTH  &1002228 RFC 2228 સત્તાધિકરણ / સુરક્ષા / મિકેનિઝમ CCC   &1002228 RFC 2228 આદેશ ચેનલ સાફ કરો. CDUP  &1000000 પિતૃ ડિરેક્ટરી પર બદલો CONF  &1002228 RFC 2228 ગુપ્તતા સંરક્ષણ આદેશ CWD   &1000697 RFC 697 જે ડિરેક્ટરીમાં કામ ચાલે છે તે ડિરેક્ટરીમાં બદલો DELE  &1000000 ફાઈલ કાઢી નાખો. ENC   &1002228 RFC 2228 ગોપનીયતા સુરક્ષિત ચેનલ EPRT  &1002428 RFC 2428 જે સર્વર સાથે જોડાવા માગતા હોય તેના વિસ્તૃત સરનામા અને પોર્ટ સ્પષ્ટ કરો. EPSV  &1002428 RFC 2428 નિષ્ક્રિય સ્થિતિમાં દાખલ FEAT  &1002389 RFC 2389 સર્વર દ્વારા અમલમાં રહેલી યાદી મેળવો. HELP &1000000  મદદ LANG  &1002640 RFC 2640 ભાષા વાટાઘાટો. LIST  &1000000 જો ઉલ્લેખિત હોય તેવી ફાઈલ અથવા ડિરેક્ટરીની માહિતી પરત કરે છે, નહિતો, ચાલુ-કામ ડિરેક્ટરીની માહિતી પરત કરે છે. LPRT  &1001639 RFC 1639 સર્વર સાથે જોડવા લાંબા અડ્રેસ અને પોર્ટનો ઉલ્લેખ કરે છે LPSV  &1001639 RFC 1639 લાંબી પરોક્ષ સ્થિતિમાં દાખલ (થવા) MDTM  &1003659 RFC 3659 ઉલ્લેખિત ફાઈલના છેલ્લા ફેરફારનો સમય આપે છે. MIC   &1002228 RFC 2228 સંપૂર્ણતી સુરક્ષિત આદેશ  MKD   &1000000  ડીરેક્ટરી બનવાવા MLSD  &1003659 RFC 3659જે તે ઉલ્લેખ વાળી ડીરેક્ટરીના સમાવિષ્ટોનું લીસ્ટ આપે છે. MLST  &1003659 RFC 3659 આપેલ ઓબ્જેક્ટના નામ વિષે માહિતી આપે છે.  MODE  &1000000 સ્થાનાંતર સ્થિતિ(સ્ટ્રીમ, બ્લોક કે કમ્પ્રેસ) NLST  &1000000 ચોક્કસ ડીરેક્ટરીમાં રહેલી ફાઈલો ના નામની યાદી આપે છે. NOOP  &1000000 કોઈપણ કાર્યવાહી નહિ. (મોટેભાગે બનાવટી પેકેટ, keepalives માટે ઉપયોગી) OPTS  &1002389 RFC 2389 સુવિધા માટે વિલ્ક્લ્પો પસંદ કરવા. PASS  &1000000 સત્તાધિકરણ પાસવર્ડ PASV  &1000000 નિષ્ક્રિય સ્થિતિમાં દાખલ PBSZ  &1002228 RFC 2228 સંરક્ષણ બફર કદ PORT  &1000000 સર્વરનું એડ્રેસ અને પોર્ટનો ઉલ્લેખ કરવા PROT  &1002228 RFC 2228 માહિતી ચેનલ સંરક્ષણ સ્તર PWD   &1000000  જે ડીરેક્ટરીમાં કામ કરતા હોય તેનું નામ પરત કરે છે. (જે તે હોસ્ટમાં) QUIT  &1000000 જોડાણ તોડી નાખવું REIN  &1000000 પુનઃ જોડાણ પ્રારંભ REST  &1003659 RFC 3659 સ્પષ્ટ કરેલ બિંદુ પરથી પુન:પ્રસારણ કરો. RETR  &1000000ફાઈલ ની નકલનું પરિવહન થાય છે.  RMD   &1000000 ડીરેક્ટરી કાઢવા RNFR  &1000000 નામ બદલો. RNTO  &1000000માટે નામ બદલો  SITE  &1000000 ચોક્કસ સાઈટ માટે દૂરસ્થ સર્વર પર આદેશો મોકલે છે SIZE  &1003659 RFC 3659 ફાઈલનું કદ દર્શાવે છે. SMNT  &1000000  ફાઈલનું બંધારણ ચઢાવે છે. STAT  &1000000 વર્તમાન સ્થિતિ જાણવા STOR  &1000000 સર્વર પર ફાઈલને સંગ્રહ કરવા તથા ડેટાનો સ્વીકાર કરવા STOU  &1000000 ફાઈલનો અનન્ય રીતે સંગ્રહ કરવા. STRU  &1000000 ફાઈલને મોકલવા માટેનું માળખું સેટ કરવા. SYST  &1000000 સિસ્ટમનો પ્રકાર દર્શાવે છે. TYPE  &1000000સ્થાનાનતર મોડ ને સેટ કરે છે. (ASCII કે બાયનરી) USER  &1000000 સત્તાધિકરણ વપરાશકર્તા નામ XCUP &1000775 RFC 775હાલમાં કામની ડીરેક્ટરીની પિતૃ ડીરેક્ટરી બદલવા. XMKD &1000775 RFC 775 ડીરેક્ટરી બનાવવા XPWD &1000775 RFC 775 હાલમાં જે ડીરેક્ટરીમાં કાર્ય થતું છે તે ડીરેક્ટરીનું નામ દર્શાવે XRCP &1000743 RFC 743 XRMD &1000775 RFC 775 ડીરેક્ટરી કાઢવા XRSQ &1000743 RFC 743 XSEM &1000737 RFC 737  XSEN &1000737 RFC 737 ટર્મિનલ પર મોકલો.

 FTP દ્વારા પરત થતા કોડ 
FTP સર્વર દ્વારા પરત થતા કોડની સારણી નીચે દર્શાવી છે. આ કોડને IETF દ્વારા RFC 959 માં પ્રમાણભૂત કરાયા છે. જેમ આ લેખમાં અગાઉ જણાવ્યું હતું કે, જવાબ કોડ કિંમત ત્રણ આંકડાના છે. પ્રથમ આંકડાના એક ત્રણ શક્ય નિષ્ફળતા પરિણામો-સફળતા છે, સૂચવે છે કે એક ભૂલ અથવા અપૂર્ણ જવાબ સૂચવે છે: 
2yz - સફળ જવાબ
4yz અથવા 5yz - નિષ્ફળ જવાબ
1yz અથવા 3yz - ભૂલ અથવા અપૂર્ણ જવાબ

બીજા આંકડાઓ ભૂલનો પ્રકાર નક્કી કરે છે:
x0z - સિન્ટેક્સ ભૂલ છે 
x1z – માહિતીની માંગણી અથવા ખૂટતી માહિતી આપો.
x2z - જોડાણો. નિયંત્રણ અને માહિતી જોડાણોનો ઉલ્લેખ.
x3z - સત્તાધિકરણ અને એકાઉન્ટિંગ. પ્રવેશ પ્રક્રિયા અને એકાઉન્ટિંગ કાર્યવાહી ને લાગતું..
x4z - વ્યાખ્યાયિત નથી.
x5z - ફાઈલ સિસ્ટમ. ફાઈલ સિસ્ટમ સ્થિતિ કોડ રિલે.

ત્રીજો આકડો દરેક શ્રેણીઓ (જે બીજા આકડો વ્યાખ્યાયિત કરે છે) માટે વધારાની માહિતી આપે છે.

 બાહ્ય કડીઓ 
 RFC 959 – ફાઇલ ટ્રાન્સ્ફર પ્રોટોકોલ 
 RFC 1579 – ફાયરવોલ સાથે તાલમેલ ધરાવતો FTP
 RFC 2228 – FTP સિક્યોરિટી એક્સ્ટેન્શનો
 RFC 2428 – IPv6 અને NATs ફોર્મેટ માટેના FTP એક્સ્ટેન્શનો
 RFC 2640 – ફાઇલ ટ્રાન્સ્ફર પ્રોટોકોલનું ઇન્ટરનેશનલાઇઝેશન (વિવિધ ભાષાઓમાં)

સર્વર
 VsFTPd (યુનિક્સ)
 ProFTPd (યુનિક્સ)
 Pure-FTPd (યુનિક્સ)
 FTP Server Test (ઓનલાઇન)
 FileZilla Server (વિન્ડોઝ)

 સંદર્ભો 

શ્રેણી:કમ્પ્યુટર વિજ્ઞાન