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 кірулерін қабылдайтын, бірақ ішкі жүйесі жоқ хост кіру сынағында мүлдем сау көрінсе де, әрбір заманауи тасымалдауда сәтсіз болады.
Клиент нұсқасын, пайдаланылатын хаттаманы және абсолютті қашықтағы жолды жұмыс жазбаларына жазыңыз. Келесі жаңарту әдепкі мәнді өзгерткенде, сол жазба бес минуттық түзету мен болжамға толы түстен кейінгі уақыттың айырмашылығы.