İllərlə skriptdə işləyən scp əmri cari klientdə tunellə heç bir əlaqəsi olmayan yol xətası ilə uğursuz ola bilər. VPN baytları daşıdı; klient serverdən serverin həll edə bilmədiyi bir ad istədi. Müasir OpenSSH scp standart olaraq SFTP ilə ötürür və SFTP köhnə protokol kimi shell üslubunda genişlənmə etmir. Əmri öz hesabınızdan bayıra doğru izləmək yolun həqiqətən harada yozulduğunu göstərir.

Hesabdan başlayın, sonra onun yaza bildiyi qovluqdan

İki nöqtə iki ad sahəsini ayırır və yalnız sol tərəf yazdığınız maşına aiddir. Ondan sonrakı hər şey server tərəfindən, autentifikasiya etdiyiniz hesab altında, həmin hesabın malik olduğu fayl sistemi görünüşü daxilində həll olunur. Əmri qurmazdan əvvəl hər ikisini təsdiqləyin, çünki administrator üçün doğru olan yol ötürmə istifadəçisi üçün avtomatik doğru deyil. Bu fərq şəbəkə nasazlığı kimi görünən icazə xətalarının çoxunun mənbəyidir.

Serverdən öz görünüşünü soruşun: ssh [email protected] pwd və ssh [email protected] ls -ld /srv/archive. İkinci əmr icazənin rədd edildiyini bildirirsə, tunel qaydasındadır və yol həmin hesab üçün yararsızdır. Ötürmənin davam etməsi üçün icazələri genişləndirmək əvəzinə sahibliyi düzəldin və ya başqa təyinat seçin.

Məhdudlaşdırılmış SFTP konfiqurasiyası chroot-u fayl sisteminin kökü kimi təqdim edə bilər. Bu görünüş daxilində mütləq yol chroot daxilində mütləqdir və bu, administratorun hostda gördüyü yer deyil.

İki nöqtənin hər iki tərəfini açıq şəkildə adlandırın

Yükləmə uzaq fayl adını göstərməlidir, yerli baza adının o biri tərəfdə məqbul olacağını güman etməməlidir.

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

Endirmə yerli təyinatı tam eyni səbəbdən göstərməlidir. İki ad sahəsi müstəqildir və onların uyğun gəldiyini güman edən skript uzaq ağac fərqli düzülüş istifadə etdiyi ilk anda pozulur.

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

Saxlanılan skriptdə ~otheruser-dən çəkinin. Başqa hesabın ev qovluğunu genişləndirmək uzaq shell xüsusiyyəti idi və SFTP serveri onu təqlid edən uzantını tətbiq etməyə bilər. Hesabın həqiqətən aça bildiyi mütləq yolu yazın və boşluq olan yerli yolları serverdəki shell üçün yazılmış dırnaq qatlarını köçürmək əvəzinə dırnaq içində verin.

scp-nizin həqiqətən hansı protokolu istifadə etdiyini bilin

OpenSSH 9.0-dan bəri klient standart olaraq SFTP istifadə edir və distributivlər bu davranışı öz cədvəlləri üzrə qəbul edir və ya geriyə port edir. Versiya sətri klientin niyyətini bildirir, lakin vendor quruluşu yuxarıdan fərqlənə bilər, ona görə həqiqətən işlətdiyiniz klienti yoxlayın: ssh -V.

İki protokol adları fərqli həll edir. Köhnə SCP uzaq istifadəçi shell-indən yolu genişləndirməsini xahiş edir, buna görə wildcard-lar və tildelər həmin shell tərəfindən öz qaydaları ilə idarə olunur. SFTP isə fayl ötürmə əməliyyatları göndərir, buna görə wildcard ya klient tərəfindən genişləndirilir, ya da heç genişləndirilmir. Hər ikisi SSH daxilində eyni maşına gedir, buna görə bir host iki klient altında fərqli davrana bilər.

scp -v tələb etdiyi alt sistemi çap edir və sftp alt sistem sətri müasir yolun istifadə olunduğunu təsdiqləyir. scp -O köhnə protokolu dəstəkləndiyi və həqiqətən tələb olunduğu yerdə məcbur edir və öz dırnaq qaydalarını geri gətirir. Bu VPN seçimi deyil, serverdə nəyisə aktivləşdirmək üsulu deyil və host açarı yoxlamasını yumşaltmaq üçün səbəb deyil.

Skript ondan asılı olmazdan əvvəl yolu sınaqdan keçirin

Yol problemi ən pis mümkün vaxtda, gecə heç kimin izləmədiyi avtomatlaşdırılmış işdə üzə çıxır. Təyinatı əvvəlcə kiçik fayl və işin istifadə etdiyi dəqiq hesabla sübut edin və o test əmrini iş təyininin yanında saxlayın. Test fərqli hesab və ya fərqli qovluq tələb edirsə, iş də onu tələb edəcək.

Server tərəfini də yoxlayın. grep -i subsystem /etc/ssh/sshd_config SFTP alt sisteminin konfiqurasiya olunub-olunmadığını göstərir və sftp -b /dev/null [email protected] yalnız həmin alt sistem cavab verdikdə uğurla çıxır. SSH girişlərini qəbul edən, lakin alt sistemi olmayan host hər müasir ötürmədə uğursuz olur, halbuki giriş testində tamamilə sağlam görünür.

Klient versiyasını, istifadə olunan protokolu və mütləq uzaq yolu iş qeydlərində qeyd edin. Növbəti yeniləmə standartı dəyişdikdə, həmin qeyd beş dəqiqəlik düzəlişlə bir günlük təxmin arasındakı fərqdir.

Əlaqəli məqalələr