SFTP પર scp: ખરેખર ઉકેલાતા રિમોટ પાથ લખવા
આધુનિક scp SFTP દ્વારા ટ્રાન્સફર કરે છે, તેથી ટિલ્ડે વિસ્તરણ અને વાઇલ્ડકાર્ડ અલગ રીતે વર્તે છે. સ્પષ્ટ સર્વર પાથ લખો અને જાણી જોઈને પ્રોટોકોલ પસંદ કરો.
વર્ષો સુધી સ્ક્રિપ્ટમાં કામ કરતો scp કમાન્ડ વર્તમાન ક્લાયન્ટ પર પાથ ભૂલ સાથે નિષ્ફળ થઈ શકે છે જે ટનલ સાથે કોઈ સંબંધ નથી. VPN એ બાઇટ્સ વહન કર્યા; ક્લાયન્ટે સર્વરને એવું નામ પૂછ્યું જે સર્વર ઉકેલી શક્યું નહીં. વર્તમાન OpenSSH scp ડિફોલ્ટ રૂપે SFTP દ્વારા ટ્રાન્સફર કરે છે, અને SFTP જૂના પ્રોટોકોલની જેમ શેલ-શૈલી વિસ્તરણ કરતું નથી. તમારા પોતાના એકાઉન્ટથી બહારની તરફ કમાન્ડને અનુસરવાથી દેખાય છે કે પાથ ખરેખર ક્યાં અર્થઘટન થાય છે.
એકાઉન્ટથી શરૂ કરો, પછી જે ડિરેક્ટરીમાં તે લખી શકે છે તેનાથી
કોલન બે નેમસ્પેસને અલગ કરે છે, અને ફક્ત ડાબી બાજુ તમે જે મશીન પર ટાઇપ કરો છો તેની છે. તેના પછીનું બધું સર્વર ઉકેલે છે, તમે જે એકાઉન્ટ તરીકે પ્રમાણીકૃત કર્યું તેની હેઠળ, તે એકાઉન્ટ પાસે જે ફાઇલસિસ્ટમ દૃશ્ય છે તેની અંદર. કમાન્ડ બનાવતા પહેલા બંનેની પુષ્ટિ કરો, કારણ કે એડમિનિસ્ટ્રેટર માટે સાચો પાથ ટ્રાન્સફર વપરાશકર્તા માટે આપોઆપ સાચો નથી. તે તફાવત નેટવર્ક નિષ્ફળતા જેવી દેખાતી મોટાભાગની પરવાનગી ભૂલોનો સ્રોત છે.
સર્વરને તેનું પોતાનું દૃશ્ય પૂછો: ssh [email protected] pwd અને ssh [email protected] ls -ld /srv/archive. જો બીજું કમાન્ડ પરવાનગી નકારી કહે, તો ટનલ ઠીક છે અને તે એકાઉન્ટ માટે પાથ નકામો છે. ટ્રાન્સફર આગળ વધી શકે તે માટે પરવાનગીઓ પહોળી કરવાને બદલે માલિકી સુધારો અથવા બીજું લક્ષ્ય પસંદ કરો.
પ્રતિબંધિત SFTP રૂપરેખાંકન chroot ને ફાઇલસિસ્ટમના મૂળ તરીકે રજૂ કરી શકે છે. તે દૃશ્યની અંદર સંપૂર્ણ પાથ chroot ની અંદર સંપૂર્ણ છે, જે એડમિનિસ્ટ્રેટર હોસ્ટ પર જુએ છે તે સ્થાન નથી.
કોલનની બંને બાજુઓને સ્પષ્ટ રીતે નામ આપો
અપલોડે રિમોટ ફાઇલનું નામ જણાવવું જોઈએ, બીજી બાજુએ સ્થાનિક બેઝનામ સ્વીકાર્ય હશે એમ ધારવાને બદલે.
scp q3-invoice.csv [email protected]:/home/transfer/drop/q3-invoice.csvડાઉનલોડે બરાબર એ જ કારણસર સ્થાનિક લક્ષ્ય જણાવવું જોઈએ. બે નેમસ્પેસ સ્વતંત્ર છે, અને જે સ્ક્રિપ્ટ ધારે છે કે તેઓ મેળ ખાય છે તે પ્રથમ વખત તૂટે છે જ્યારે રિમોટ ટ્રી અલગ લેઆઉટ વાપરે છે.
scp [email protected]:/srv/archive/2026-q3.csv ./2026-q3.csvજાળવવામાં આવતી સ્ક્રિપ્ટમાં ~otheruser ટાળો. બીજા એકાઉન્ટની હોમ ડિરેક્ટરી વિસ્તારવી એ રિમોટ-શેલ સુવિધા હતી, અને SFTP સર્વર તેનું અનુકરણ કરતું એક્સ્ટેન્શન લાગુ ન કરે. એકાઉન્ટ ખરેખર ખોલી શકે તેવો સંપૂર્ણ પાથ લખો, અને સર્વર પરના શેલ માટે લખાયેલા અવતરણ સ્તરોની નકલ કરવાને બદલે જગ્યાવાળા સ્થાનિક પાથને અવતરણમાં મૂકો.
તમારું scp ખરેખર કયો પ્રોટોકોલ વાપરે છે તે જાણો
OpenSSH 9.0 થી ક્લાયન્ટ ડિફોલ્ટ રૂપે SFTP વાપરે છે, અને ડિસ્ટ્રિબ્યુશન તે વર્તનને પોતાના સમયપત્રક પ્રમાણે અપનાવે છે અથવા બેકપોર્ટ કરે છે. વર્ઝન સ્ટ્રિંગ કહે છે કે ક્લાયન્ટનો ઇરાદો શું છે, પણ વેન્ડર બિલ્ડ upstream થી અલગ હોઈ શકે, તેથી તમે ખરેખર ચલાવો છો તે ક્લાયન્ટ તપાસો: ssh -V.
બે પ્રોટોકોલ નામોને અલગ રીતે ઉકેલે છે. જૂનું SCP રિમોટ વપરાશકર્તા શેલને પાથ વિસ્તારવા કહે છે, તેથી વાઇલ્ડકાર્ડ અને ટિલ્ડે તે શેલ પોતાના નિયમોથી સંભાળે છે. SFTP તેના બદલે ફાઇલ-ટ્રાન્સફર કામગીરી બહાર પાડે છે, તેથી વાઇલ્ડકાર્ડ ક્યાં તો ક્લાયન્ટ વિસ્તારે છે અથવા બિલકુલ વિસ્તરતું નથી. બંને SSH ની અંદર એક જ મશીન પર જાય છે, તેથી એક હોસ્ટ બે ક્લાયન્ટ હેઠળ અલગ વર્તી શકે છે.
scp -v જે સબસિસ્ટમ માંગે છે તે છાપે છે, અને sftp સબસિસ્ટમ લાઇન પુષ્ટિ કરે છે કે આધુનિક પાથ વપરાય છે. scp -O જ્યાં સમર્થિત અને ખરેખર જરૂરી હોય ત્યાં જૂનો પ્રોટોકોલ ફરજિયાત કરે છે, અને તેની પોતાની અવતરણ નિયમો સાથે પાછા લાવે છે. તે VPN વિકલ્પ નથી, સર્વર પર કંઈક સક્ષમ કરવાની રીત નથી, અને હોસ્ટ-કી ચકાસણી ઢીલી કરવાનું કારણ નથી.
સ્ક્રિપ્ટ તેના પર આધાર રાખે તે પહેલાં પાથની કસોટી કરો
પાથ સમસ્યા સૌથી ખરાબ સમયે, રાત્રે કોઈ જોતું ન હોય એવા સ્વયંસંચાલિત કામમાં પ્રકાશમાં આવે છે. પહેલા નાની ફાઇલ અને કામ જે ચોક્કસ એકાઉન્ટ વાપરે છે તેનાથી લક્ષ્ય સાબિત કરો, અને તે પરીક્ષણ કમાન્ડ કામની વ્યાખ્યા પાસે રાખો. જો પરીક્ષણને અલગ એકાઉન્ટ અથવા અલગ ડિરેક્ટરીની જરૂર હોય, તો કામને પણ તેની જરૂર પડશે.
સર્વર બાજુ પણ તપાસો. grep -i subsystem /etc/ssh/sshd_config દર્શાવે છે કે SFTP સબસિસ્ટમ રૂપરેખાંકિત છે કે નહીં, અને sftp -b /dev/null [email protected] ફક્ત ત્યારે જ સફળતાપૂર્વક બહાર નીકળે છે જ્યારે તે સબસિસ્ટમ જવાબ આપે. જે હોસ્ટ SSH લોગિન સ્વીકારે છે પણ સબસિસ્ટમ ધરાવતું નથી તે દરેક આધુનિક ટ્રાન્સફરમાં નિષ્ફળ જાય છે, જ્યારે લોગિન પરીક્ષણમાં સંપૂર્ણ સ્વસ્થ દેખાય છે.
ક્લાયન્ટ વર્ઝન, વપરાતો પ્રોટોકોલ અને સંપૂર્ણ રિમોટ પાથ કામની નોંધમાં નોંધો. જ્યારે આગલું અપગ્રેડ ડિફોલ્ટ બદલશે, ત્યારે તે નોંધ પાંચ મિનિટના સુધારા અને અંદાજો ભરેલી બપોર વચ્ચેનો તફાવત છે.