
Úvod
Príkaz SCP slúži na bezpečné kopírovanie súborov medzi lokálnym počítačom a vzdialeným serverom. Skratka SCP znamená Secure Copy Protocol.
SCP využíva na prenos dát protokol SSH, takže komunikácia medzi počítačom a serverom je šifrovaná. Používa sa hlavne pri správe Linux serverov, Docker serverov, VPS, Raspberry Pi alebo iných zariadení, ku ktorým sa pripájame cez SSH.
Pomocou SCP je možné kopírovať:
- súbory z lokálneho počítača na server,
- súbory zo servera do lokálneho počítača,
- celé priečinky,
- konfiguračné súbory,
- zálohy,
- skripty,
- logy alebo exportované dáta.
SCP funguje na systémoch Linux, macOS aj Windows.
Základná syntax príkazu SCP
Základný tvar príkazu je:
scp zdroj ciel
Pri kopírovaní na vzdialený server sa používa tvar:
scp subor používateľ@server:/cesta/kam/uložiť
Pri kopírovaní zo servera do počítača sa používa tvar:
scp používateľ@server:/cesta/k/suboru /lokálna/cesta
Príklad:
scp test.txt ivan@10.10.8.5:/home/ivan/
Tento príkaz skopíruje súbor test.txt z aktuálneho počítača na server 10.10.8.5 do priečinka /home/ivan/.
Predpoklady pre používanie SCP
Aby bolo možné SCP používať, musia byť splnené tieto podmienky:
- Na serveri musí byť zapnutá služba SSH.
- Musíš poznať IP adresu alebo DNS názov servera.
- Musíš poznať používateľské meno na serveri.
- Musíš mať heslo alebo SSH kľúč.
- Firewall musí povoľovať SSH port, štandardne port
22.
Príklad SSH pripojenia na server:
ssh ivan@10.10.8.5
Ak toto funguje, vo väčšine prípadov bude fungovať aj SCP.
opírovanie súboru z počítača na server
Linux alebo macOS
Ak chceme skopírovať súbor z počítača na server, použijeme:
scp /cesta/k/suboru používateľ@IP_adresa_servera:/cieľová/cesta/
príklad
scp /home/ivan/Dokumenty/test.txt ivan@10.10.8.5:/home/ivan/
Tento príkaz skopíruje súbor test.txt z priečinka Dokumenty na server do priečinka /home/ivan/.
Ak sa nachádzame priamo v priečinku, kde je súbor uložený, stačí zadať iba názov súboru:
scp test.txt ivan@10.10.8.5:/home/ivan/
Kopírovanie súboru zo servera do počítača
Linux alebo macOS
Ak chceme skopírovať súbor zo servera do lokálneho počítača, použijeme:
scp používateľ@IP_adresa_servera:/cesta/k/suboru /lokálna/cesta/
Príklad kopírovania do priečinka Dokumenty:
scp ivan@10.10.8.5:/home/ivan/zaloha.txt /home/ivan/Dokumenty/
Príklad kopírovania na pracovnú plochu:
scp ivan@10.10.8.5:/home/ivan/zaloha.txt /home/ivan/Desktop/
Na macOS môže byť cesta na pracovnú plochu napríklad:
scp ivan@10.10.8.5:/home/ivan/zaloha.txt ~/Desktop/
Alebo do dokumentov:
scp ivan@10.10.8.5:/home/ivan/zaloha.txt ~/Documents/
Znak ~ znamená domovský priečinok aktuálneho používateľa.
Používanie SCP vo Windows
Vo Windows 10 a Windows 11 je možné používať SCP priamo cez:
- Windows Terminal,
- PowerShell,
- Príkazový riadok,
- prípadne cez Git Bash.
Moderné verzie Windows už majú často OpenSSH klienta nainštalovaného automaticky.
Overenie, či je SCP dostupné:
scp
Ak sa zobrazí nápoveda k príkazu, SCP je dostupné.
Kopírovanie súboru z Windows na server
Príklad súboru uloženého na pracovnej ploche:
scp C:\Users\Ivan\Desktop\test.txt ivan@10.10.8.5:/home/ivan/
Tento príkaz skopíruje súbor test.txt z pracovnej plochy Windows na server do priečinka /home/ivan/.
Príklad kopírovania z priečinka Dokumenty:
scp C:\Users\Ivan\Documents\poznamky.txt ivan@10.10.8.5:/home/ivan/
Ak cesta obsahuje medzery, treba ju dať do úvodzoviek:
scp "C:\Users\Ivan\Desktop\moj subor.txt" ivan@10.10.8.5:/home/ivan/
Kopírovanie súboru zo servera do Windows
Príklad kopírovania zo servera na pracovnú plochu Windows:
scp ivan@10.10.8.5:/home/ivan/zaloha.txt C:\Users\Ivan\Desktop\
Príklad kopírovania do Dokumentov:
scp ivan@10.10.8.5:/home/ivan/zaloha.txt C:\Users\Ivan\Documents\
Ak cieľová cesta obsahuje medzery, použijeme úvodzovky:
scp ivan@10.10.8.5:/home/ivan/zaloha.txt "C:\Users\Ivan\Desktop\Moje subory\"
Kopírovanie celého priečinka
Ak chceme kopírovať celý priečinok, použijeme parameter -r.
Písmeno r znamená recursive, teda rekurzívne kopírovanie vrátane všetkých súborov a podpriečinkov.
Kopírovanie priečinka z počítača na server
scp -r /home/ivan/Dokumenty/projekt ivan@10.10.8.5:/home/ivan/
Tento príkaz skopíruje celý priečinok projekt na server.
Kopírovanie priečinka zo servera do počítača
scp -r ivan@10.10.8.5:/home/ivan/projekt /home/ivan/Dokumenty/
Vo Windows napríklad:
scp -r ivan@10.10.8.5:/home/ivan/projekt C:\Users\Ivan\Desktop\
Kopírovanie na iný SSH port
Štandardný SSH port je 22. Ak server používa iný port, pri SCP sa používa parameter -P.
Dôležité je, že pri SCP je parameter veľké -P, nie malé -p.
Príklad:
scp -P 2222 test.txt ivan@10.10.8.5:/home/ivan/
Tento príkaz skopíruje súbor test.txt na server, kde SSH beží na porte 2222.
Kopírovanie pomocou SSH kľúča
Ak sa na server pripájame pomocou SSH kľúča, použijeme parameter -i.
Príklad:
scp -i ~/.ssh/id_rsa test.txt ivan@10.10.8.5:/home/ivan/
Vo Windows môže cesta ku kľúču vyzerať napríklad takto:
scp -i C:\Users\Ivan\.ssh\id_rsa C:\Users\Ivan\Desktop\test.txt ivan@10.10.8.5:/home/ivan/
Praktické príklady
Skopírovanie súboru na server
scp test.txt ivan@10.10.8.5:/home/ivan/
Skopírovanie súboru zo servera na pracovnú plochu v Linuxe
scp ivan@10.10.8.5:/home/ivan/test.txt ~/Desktop/
Skopírovanie súboru zo servera do Dokumentov na macOS
scp ivan@10.10.8.5:/home/ivan/test.txt ~/Documents/
Skopírovanie súboru zo servera na pracovnú plochu vo Windows
scp ivan@10.10.8.5:/home/ivan/test.txt C:\Users\Ivan\Desktop\
Skopírovanie priečinka na server
scp -r projekt ivan@10.10.8.5:/home/ivan/
Skopírovanie priečinka zo servera
scp -r ivan@10.10.8.5:/home/ivan/projekt ~/Documents/
Najčastejšie chyby
Permission denied
Chyba:
Permission denied
Znamená, že používateľ nemá oprávnenie zapisovať do cieľového priečinka, alebo je zadané nesprávne heslo.
Riešenie:
Skopírovať súbor najskôr do domovského priečinka používateľa:
scp test.txt ivan@10.10.8.5:/home/ivan/
Potom sa pripojiť na server cez SSH a súbor presunúť pomocou sudo:
sudo mv test.txt /cieľová/cesta/
No such file or directory
Chyba:
No such file or directory
Znamená, že zadaná cesta alebo súbor neexistuje.
Treba skontrolovať:
- či je správny názov súboru,
- či je správna cesta,
- či sa v názve nenachádza preklep,
- či cesta s medzerami je v úvodzovkách.
Connection refused
Connection refused
Znamená, že sa nepodarilo pripojiť na SSH službu.
Možné príčiny:
- SSH služba na serveri nebeží,
- je zadaná zlá IP adresa,
- SSH beží na inom porte,
- firewall blokuje spojenie.
Overenie SSH pripojenia:
ssh ivan@10.10.8.5
Host key verification failed
Chyba:
Host key verification failed
Táto chyba sa môže objaviť, ak sa zmenil SSH kľúč servera, napríklad po reinštalácii systému.
Riešenie treba robiť opatrne, pretože táto hláška môže znamenať aj bezpečnostné riziko. Ak vieme, že server bol naozaj preinštalovaný, môžeme odstrániť starý záznam zo súboru known_hosts.
Príklad:
ssh-keygen -R 10.10.8.5
Potom sa znova pripojíme:
ssh ivan@10.10.8.5
Užitočné parametre SCP
| Parameter | Význam |
|---|
-r | Kopírovanie celého priečinka |
-P | Použitie iného SSH portu |
-i | Použitie SSH privátneho kľúča |
-v | Podrobnejší výpis pre diagnostiku |
-C | Kompresia počas prenosu |
Príklad s viacerými parametrami:
scp -r -P 2222 -i ~/.ssh/id_rsa projekt ivan@10.10.8.5:/home/ivan/
Rozdiel medzi SCP a SFTP
SCP je jednoduchý príkaz určený hlavne na rýchle kopírovanie súborov.
SFTP je interaktívnejší spôsob práce so súbormi na serveri. Umožňuje napríklad prehliadať priečinky, nahrávať a sťahovať súbory podobne ako cez FTP klienta.
Na jednoduché kopírovanie jedného súboru alebo priečinka je SCP veľmi praktické. Na pravidelnú správu viacerých súborov môže byť pohodlnejší SFTP klient, napríklad WinSCP.
Odporúčanie z praxe
Pri práci so serverom je vhodné najskôr overiť SSH pripojenie:
ssh ivan@10.10.8.5
Ak SSH funguje, potom môžeme použiť SCP.
Pri kopírovaní do systémových priečinkov, napríklad /etc, /var/www alebo /opt, je lepšie najskôr súbor skopírovať do domovského priečinka používateľa:
scp konfiguracia.conf ivan@10.10.8.5:/home/ivan/
Až následne ho na serveri presunúť pomocou sudo:
sudo mv konfiguracia.conf /etc/sluzba/
Tento postup je bezpečnejší a prehľadnejší.
Záver
Príkaz SCP je jednoduchý a užitočný nástroj na bezpečné kopírovanie súborov medzi lokálnym počítačom a serverom. Funguje na Linuxe, macOS aj Windows a využíva SSH spojenie, vďaka čomu sú prenášané dáta šifrované.
Najčastejšie sa používa na kopírovanie konfiguračných súborov, záloh, skriptov, logov alebo projektových priečinkov. Pri správnej znalosti základnej syntaxe je SCP veľmi rýchly spôsob, ako preniesť súbor na server alebo zo servera späť do počítača.
