scp-käsk, mis töötas skriptis aastaid, võib praegusel kliendil ebaõnnestuda teevirraga, millel pole tunneliga mingit pistmist. VPN kandis baidid; klient küsis serverilt nime, mida server ei suutnud lahendada. Praegune OpenSSH scp edastab vaikimisi SFTP kaudu ja SFTP ei tee kestastiilis laiendust nagu vana protokoll. Käsu jälgimine teie enda kontolt väljapoole näitab, kus teed tegelikult tõlgendatakse.

Alustage kontost, seejärel kataloogist, kuhu see kirjutada saab

Koolon eraldab kaks nimeruumi ja ainult vasak pool kuulub masinale, millel te trükite. Kõik pärast seda lahendab server, selle konto all, millega end autentisite, selle failisüsteemi vaate sees, mis sellel kontol on. Kinnitage mõlemad enne käsu koostamist, sest administraatori jaoks õige tee ei ole automaatselt õige ülekande kasutaja jaoks. See erinevus on enamiku õigusvigade allikas, mis näevad välja nagu võrguvead.

Küsige serverilt selle enda vaadet: ssh [email protected] pwd ja ssh [email protected] ls -ld /srv/archive. Kui teine käsk teatab juurdepääsu keelamisest, on tunnel korras ja tee on selle konto jaoks kasutuskõlbmatu. Parandage omandiõigus või valige teine sihtkoht, selle asemel et õigusi laiendada, et ülekanne saaks jätkuda.

Piiratud SFTP-konfiguratsioon võib esitada chroot'i failisüsteemi juurena. Selle vaate sees on absoluutne tee absoluutne chroot'i sees, mis ei ole sama koht, mida administraator hostis näeb.

Nimetage kooloni mõlemad pooled selgesõnaliselt

Üleslaadimine peaks märkima kaugfaili nime, selle asemel et eeldada, et kohalik põhinimi on teisel pool vastuvõetav.

scp q3-invoice.csv [email protected]:/home/transfer/drop/q3-invoice.csv

Allalaadimine peaks märkima kohaliku sihtkoha täpselt samal põhjusel. Kaks nimeruumi on sõltumatud ja skript, mis eeldab nende kokkulangevust, puruneb esimesel korral, kui kaugpuu kasutab teistsugust paigutust.

scp [email protected]:/srv/archive/2026-q3.csv ./2026-q3.csv

Vältige ~otheruser hooldatavas skriptis. Teise konto kodukataloogi laiendamine oli kaugkesta funktsioon ja SFTP-server ei pruugi rakendada laiendust, mis seda jäljendab. Kirjutage absoluutne tee, mille konto tegelikult avada saab, ja pange tühikuid sisaldavad kohalikud teed jutumärkidesse, selle asemel et kopeerida serveri kesta jaoks kirjutatud jutumärkide kihte.

Teage, millist protokolli teie scp tegelikult kasutab

Alates OpenSSH 9.0-st kasutab klient vaikimisi SFTP-d ja distributsioonid võtavad selle käitumise üle või tagasiportivad selle oma ajakava järgi. Versioonistring ütleb, mida klient kavatseb, kuid tarnija ehitus võib upstreamist erineda, seega kontrollige klienti, mida tegelikult käivitate: ssh -V.

Kaks protokolli lahendavad nimesid erinevalt. Vana SCP palub kaugkasutaja kestal tee laiendada, seega käsitleb metamärke ja tildesid see kest oma reeglite järgi. SFTP väljastab selle asemel failiülekande toiminguid, seega metamärki kas laiendab klient või ei laiendata üldse. Mõlemad reisivad SSH sees samasse masinasse, mistõttu üks host võib kahe kliendi all käituda erinevalt.

scp -v trükib alamsüsteemi, mida see taotleb, ja alamsüsteemi rida sftp kinnitab, et kasutatakse kaasaegset teed. scp -O sunnib vana protokolli seal, kus seda toetatakse ja tõesti vajatakse, ning toob tagasi oma jutumärgireeglid. See ei ole VPN-valik, mitte viis serveris midagi lubada ja mitte põhjus hostivõtme kontrolli lõdvendada.

Testige teed enne, kui skript sellest sõltub

Teeprobleem ilmneb kõige halvemal võimalikul hetkel, öises automatiseeritud töös, kui keegi ei vaata. Tõestage sihtkoht esmalt väikese faili ja täpselt selle kontoga, mida töö kasutab, ja hoidke see testkäsk töö definitsiooni kõrval. Kui test vajab teist kontot või teist kataloogi, vajab töö seda samuti.

Kontrollige ka serveripoolt. grep -i subsystem /etc/ssh/sshd_config näitab, kas SFTP alamsüsteem on konfigureeritud, ja sftp -b /dev/null [email protected] lõpeb edukalt ainult siis, kui see alamsüsteem vastab. Host, mis võtab vastu SSH sisselogimisi, kuid millel pole alamsüsteemi, ebaõnnestub igal kaasaegsel ülekandel, näidates samal ajal sisselogimistestis täiesti terve.

Märkige kliendi versioon, kasutatav protokoll ja absoluutne kaugtee töömärkmetesse. Kui järgmine uuendus muudab vaikeväärtust, on see märge erinevus viie minuti paranduse ja oletuste täis pärastlõuna vahel.

Seotud artiklid