scp kupitia SFTP: kuandika njia za mbali zinazotatuliwa kweli
scp ya kisasa huhamisha kupitia SFTP, kwa hivyo upanuzi wa tilde na wildcards hufanya kazi tofauti. Andika njia za seva zilizo wazi na uchague itifaki kwa makusudi.
Amri ya scp iliyofanya kazi katika script kwa miaka inaweza kushindwa kwenye mteja wa sasa kwa hitilafu ya njia ambayo hauna uhusiano wowote na handaki. VPN ilibeba baiti; mteja alimwomba seva jina ambalo seva haikuweza kutatua. OpenSSH scp ya sasa huhamisha kupitia SFTP kwa chaguo-msingi, na SFTP haifanyi upanuzi wa mtindo wa shell kama itifaki ya zamani. Kufuatilia amri kutoka akaunti yako mwenyewe kwenda nje kunaonyesha wapi njia inatafsiriwa kweli.
Anza na akaunti, kisha saraka ambayo inaweza kuandika
Kolonu hutenganisha nafasi mbili za majina, na upande wa kushoto pekee ni wa mashine unayoandikia. Kila kitu baada yake hutatuliwa na seva, chini ya akaunti uliyothibitisha nayo, ndani ya mwonekano wa mfumo wa faili ambao akaunti hiyo inao. Thibitisha zote mbili kabla ya kuunda amri, kwa sababu njia iliyo sahihi kwa msimamizi si sahihi kiotomatiki kwa mtumiaji wa uhamishaji. Tofauti hiyo ndiyo chanzo cha makosa mengi ya ruhusa yanayofanana na hitilafu za mtandao.
Uliza seva mwonekano wake mwenyewe: ssh [email protected] pwd na ssh [email protected] ls -ld /srv/archive. Ikiwa amri ya pili inaripoti ruhusa imekataliwa, handaki ni sawa na njia haitumiki kwa akaunti hiyo. Rekebisha umiliki au chagua lengo lingine badala ya kupanua ruhusa ili uhamishaji uendelee.
Usanidi uliozuiliwa wa SFTP unaweza kuwasilisha chroot kama mzizi wa mfumo wa faili. Ndani ya mwonekano huo njia kamili ni kamili ndani ya chroot, ambayo si mahali pale pale msimamizi anapoona kwenye mwenyeji.
Taja pande zote mbili za kolonu kwa uwazi
Upakiaji unapaswa kutaja jina la faili la mbali badala ya kudhani jina la msingi la ndani litakubalika upande wa pili.
scp q3-invoice.csv [email protected]:/home/transfer/drop/q3-invoice.csvUpakuaji unapaswa kutaja lengo la ndani kwa sababu hiyo hiyo. Nafasi mbili za majina ni huru, na script inayodhani zinalingana huvunjika mara ya kwanza mti wa mbali unapotumia mpangilio tofauti.
scp [email protected]:/srv/archive/2026-q3.csv ./2026-q3.csvEpuka ~otheruser katika script inayotunzwa. Kupanua saraka ya nyumbani ya akaunti nyingine ilikuwa kipengele cha shell ya mbali, na seva ya SFTP inaweza isitekeleze kiendelezi kinachoiga hilo. Andika njia kamili ambayo akaunti inaweza kuifungua kweli, na weka njia za ndani zenye nafasi ndani ya alama za nukuu badala ya kunakili tabaka za nukuu zilizoandikwa kwa shell kwenye seva.
Jua ni itifaki gani scp yako inatumia kweli
Tangu OpenSSH 9.0 mteja hutumia SFTP kwa chaguo-msingi, na usambazaji huchukua au kurudisha nyuma tabia hiyo kwa ratiba yao wenyewe. Mfuatano wa toleo husema mteja anakusudia nini, lakini ujenzi wa muuzaji unaweza kutofautiana na upstream, kwa hivyo angalia mteja unaoendesha kweli: ssh -V.
Itifaki mbili hutatua majina kwa njia tofauti. SCP ya zamani huomba shell ya mtumiaji wa mbali kupanua njia, kwa hivyo wildcards na tilde hushughulikiwa na shell hiyo kwa sheria zake. SFTP badala yake hutoa shughuli za uhamishaji faili, kwa hivyo wildcard aidha hupanuliwa na mteja au haipanuliwi kabisa. Zote mbili husafiri ndani ya SSH hadi mashine moja, ndiyo sababu mwenyeji mmoja anaweza kufanya tofauti chini ya wateja wawili.
scp -v huchapisha mfumo mdogo inaoutaka, na mstari wa mfumo mdogo sftp unathibitisha kuwa njia ya kisasa inatumika. scp -O hulazimisha itifaki ya zamani mahali inaposaidiwa na inahitajika kweli, na huleta sheria zake za nukuu. Sio chaguo la VPN, sio njia ya kuwezesha kitu kwenye seva, na sio sababu ya kulegeza ukaguzi wa ufunguo wa mwenyeji.
Jaribu njia kabla script haijaittegemea
Tatizo la njia hujitokeza wakati mbaya zaidi, katika kazi ya kiotomatiki usiku bila mtu yeyote kuangalia. Thibitisha lengo kwanza kwa faili ndogo na akaunti kamili ambayo kazi hutumia, na weka amri hiyo ya jaribio karibu na ufafanuzi wa kazi. Ikiwa jaribio linahitaji akaunti nyingine au saraka nyingine, kazi pia itahitaji.
Angalia upande wa seva pia. grep -i subsystem /etc/ssh/sshd_config unaonyesha ikiwa mfumo mdogo wa SFTP umesanidiwa, na sftp -b /dev/null [email protected] hutoka kwa mafanikio tu wakati mfumo mdogo huo unajibu. Mwenyeji anayekubali kuingia kwa SSH lakini hana mfumo mdogo hushindwa katika kila uhamishaji wa kisasa huku akionekana mzima kabisa katika jaribio la kuingia.
Rekodi toleo la mteja, itifaki inayotumika na njia kamili ya mbali katika maelezo ya kazi. Wakati sasisho lijalo litabadilisha chaguo-msingi, maelezo hayo ni tofauti kati ya marekebisho ya dakika tano na mchana mzima wa kubahatisha.