Bosh sahifa Wiki SCP

SCP

SCPSSH himoyalangan kanali orqali lokal va masofaviy tizimlar orasida fayl nusxalash uchun ishlatiladigan vosita va tarixiy protokol nomi. Uning to‘liq nomi Secure Copy Protocol hisoblanadi.

SCP foydalanuvchini SSH orqali autentifikatsiya qiladi, trafikni shifrlaydi va faylni masofaviy tizimga yoki undan lokal tizimga ko‘chiradi.

SCP kataloglarni interaktiv ko‘rish yoki masofaviy fayl tizimini to‘liq boshqarish uchun emas. Bunday vazifalarda SFTP qulayroq.

SCP buyrug‘i

Asosiy sintaksis:

scp [parametrlar] manba manzil

Lokal faylni serverga yuborish:

scp report.pdf [email protected]:/srv/files/

Serverdan fayl olish:

scp [email protected]:/var/log/app.log ./

Katalogni rekursiv nusxalash:

scp -r ./site [email protected]:/var/www/

Masofaviy yo‘l user@host:path ko‘rinishida yoziladi.

SSH transporti

SCP odatda SSH server orqali ishlaydi.

Jarayon:

  1. Client TCP 22-portga ulanadi.
  2. SSH algoritmlari kelishiladi.
  3. Server host key tekshiriladi.
  4. Foydalanuvchi autentifikatsiyadan o‘tadi.
  5. Masofaviy tizimda fayl uzatish jarayoni ishga tushadi.
  6. Ma’lumot shifrlangan kanal orqali ko‘chiriladi.

SSH konfiguratsiyasidagi port, proxy, key va algoritmlar SCPga ham ta’sir qiladi.

Tarixiy SCP protokoli

Eski SCP protokoli BSD rcp vositasiga o‘xshash sodda oqim modelidan foydalanadi. Client masofaviy shell orqali scp dasturini server yoki sink rejimida ishga tushiradi.

Protokol:

  • fayl nomi;
  • ruxsatlar;
  • hajm;
  • vaqt belgisi;
  • fayl mazmuni

haqida matnli boshqaruv yozuvlarini almashadi.

Tarixiy modelda server qaytargan fayl nomiga ortiqcha ishonish bilan bog‘liq xavfsizlik muammolari bo‘lgan. Zamonaviy OpenSSH scp buyrug‘i ko‘pincha standart holatda SFTP protokolidan foydalanadi.

Buyruq nomi scp bo‘lib qoladi, transportdagi fayl protokoli esa SFTP bo‘lishi mumkin.

Asosiy parametrlar

Parametr Vazifasi
-r Katalogni rekursiv ko‘chirish
-P SSH portini ko‘rsatish
-p Vaqt va ruxsat atributlarini saqlash
-i Private key faylini tanlash
-C SSH siqishni yoqish
-q Progress va ayrim xabarlarni yashirish
-v Debug ma’lumotini chiqarish
-l Bandwidthni cheklash
-J Jump host orqali ulanish
-O Ayrim OpenSSH versiyalarida eski SCP protokolini majburlash

-P katta harf bilan yoziladi. Kichik -p boshqa vazifaga ega.

Fayl atributlari

-p parametri quyidagilarni saqlashga urinadi:

  • modification time;
  • access time;
  • file mode.

Owner va groupni aynan saqlash foydalanuvchi huquqiga va masofaviy tizimga bog‘liq.

Fayl yangi serverga ko‘chirilganda:

  • user IDlar farq qilishi;
  • umask;
  • ACL;
  • SELinux context;
  • filesystem xususiyati

natijani o‘zgartirishi mumkin.

Wildcard

Masofaviy yo‘ldagi wildcardlar shell yoki SFTP glob qoidalariga qarab ishlaydi.

Misol:

scp 'user@server:/var/log/*.log' ./

Quote ishlatilmasa, lokal shell * belgisini masofaviy serverga yuborishdan oldin kengaytirishga urinishi mumkin.

Eski SCP protokoli va yangi SFTP backend wildcardni turlicha talqin qilishi mumkin.

Ikki masofaviy host orasida

SCP ikki remote host orasida ham nusxalashga urinishi mumkin.

Tarixan bir server ikkinchisiga bevosita ulanadigan model bo‘lgan. Zamonaviy variantlarda trafik client orqali o‘tishi mumkin.

Bu holatda:

aniq nazorat qilinadi.

Progress va katta fayl

SCP odatda fayl hajmi, foiz, tezlik va qolgan vaqtni ko‘rsatadi.

Katta faylda uzatish to‘xtasa, klassik SCP to‘liq resume imkoniyatiga ega emas. Faylni qayta yuborishi mumkin.

Katta va tez-tez o‘zgaradigan kataloglar uchun:

samaraliroq bo‘lishi mumkin.

Compression

-C SSH compressionni yoqadi.

Siqish quyidagilarda foydali:

Quyidagilar allaqachon siqilgan bo‘ladi:

  • ZIP;
  • JPEG;
  • MP4;
  • PDF;
  • gzip;
  • encrypted file.

Bunday fayllarda compression CPU yukini oshirib, tezlikni yaxshilamasligi mumkin.

Bandwidth cheklovi

-l parametr orqali uzatish tezligi cheklanishi mumkin.

Bu:

  • ishlab chiqarish tarmog‘ini band qilmaslik;
  • backupni ish vaqtida sekinlashtirish;
  • WAN kanalini himoya qilish;
  • boshqa xizmatlarga bandwidth qoldirish

uchun ishlatiladi.

Aniq birlik client implementatsiyasi hujjatidan tekshiriladi.

SCP va rsync

Jihat SCP rsync
Asosiy vazifa Faylni nusxalash Kataloglarni sinxronlashtirish
Farqli bloklar Odatda yo‘q Bor
Resume Cheklangan Qisman fayl bilan ishlashi mumkin
Delete Oddiy nusxalashda yo‘q Destinationni manbaga mos tozalashi mumkin
Filter Kam Keng include/exclude
SSH Ishlatadi Transport sifatida ishlatishi mumkin

Bir martalik kichik nusxa uchun SCP sodda. Takroriy katta katalog uchun rsync mosroq.

SCP va SFTP

SFTP interaktiv katalog boshqaruvi va request–response protokolini beradi. SCP esa buyruq darajasida manbadan destinationga nusxalashga yo‘naltirilgan.

Zamonaviy OpenSSHda scp buyrug‘i SFTP protokolidan foydalansa ham, foydalanuvchi interfeysi SCPga o‘xshab qoladi.

Xavfsizlik

SCP xavfsizligi SSHga tayanadi.

Muhim choralar:

  • host keyni tekshirish;
  • private keyni himoyalash;
  • root loginni cheklash;
  • least privilege;
  • kerakli katalogga ruxsat;
  • command restriction;
  • jump host nazorati;
  • audit log;
  • kalit rotatsiyasi;
  • eski algoritmlarni o‘chirish.

StrictHostKeyChecking=no kabi sozlama avtomatlashtirishni osonlashtiradi, lekin server identifikatsiyasi himoyasini zaiflashtiradi.

Atomik joylashtirish

Deploymentda faylni to‘g‘ridan-to‘g‘ri faol nomga yozish xavfli. Qabul qiluvchi xizmat yarim yozilgan faylni o‘qishi mumkin.

Yaxshi jarayon:

  1. fayl vaqtinchalik nom bilan yuboriladi;
  2. checksum tekshiriladi;
  3. permission belgilanadi;
  4. rename orqali faol nomga o‘tkaziladi.

Bir filesystem ichidagi rename ko‘pincha atomik bo‘ladi.

Diagnostika

SCP xatosida quyidagilar tekshiriladi:

Permission denied login xatosi ham, fayl tizimi ruxsat xatosi ham bo‘lishi mumkin. Xabar qaysi bosqichda chiqqani aniqlanadi.

Bog‘liq tushunchalar

SSH, SFTP, File transfer, rsync, Public key, Host key, File permissions, OpenSSH, Remote copy, Checksum