Co to jest scp?
Autor: Redakcja Domeny.ForSale Opublikowano
W skrócie: W informatyce SCP (Secure Copy Protocol) oznacza sposób bezpiecznego kopiowania plików między komputerami, a scp to polecenie służące do takiego transferu przez SSH, czyli szyfrowane połączenie ze zdalnym systemem. Możesz nim wysłać plik na serwer albo pobrać kopię zapasową na własny komputer. Współczesne wersje scp z pakietu OpenSSH domyślnie używają protokołu SFTP zamiast starszego protokołu SCP. Skrót występuje też w nazwie fikcyjnego uniwersum SCP Foundation — to inne znaczenie, niezwiązane z przesyłaniem danych.
Do czego służy scp i jak działa?
Polecenie scp kopiuje dane między wskazanym źródłem a miejscem docelowym. Typowe zastosowania to przesłanie archiwum strony na serwer, pobranie logów do analizy lub skopiowanie pliku konfiguracyjnego. Uruchamiasz je w terminalu, podając ścieżki oraz dane dostępu do zdalnego komputera.
SSH szyfruje połączenie i umożliwia uwierzytelnienie, czyli sprawdzenie tożsamości stron połączenia. Użytkownik zwykle loguje się hasłem albo kluczem SSH. Klucz to para powiązanych elementów: publiczny umieszcza się na serwerze, a prywatny zachowuje na swoim komputerze i chroni przed ujawnieniem.
Szyfrowanie transferu nie oznacza jednak, że plik jest szyfrowany także po zapisaniu na dysku. scp nie jest również pełnym systemem kopii zapasowych: samo nie zapewnia historii wersji, rotacji archiwów ani testowania możliwości odtworzenia danych.
Co trzeba przygotować przed kopiowaniem?
Na komputerze, z którego uruchamiasz transfer, potrzebujesz klienta scp. Jest on dostępny w wielu instalacjach Linuksa i macOS, a w Windows można korzystać z klienta OpenSSH. Jego obecność sprawdzisz poleceniem ssh -V, a dostępność samego scp — uruchamiając scp bez argumentów; program powinien wyświetlić informację o składni.
Po stronie serwera musi działać SSH, a dla domyślnego trybu współczesnego OpenSSH także obsługa SFTP. Potrzebujesz adresu serwera, nazwy użytkownika, sposobu logowania i uprawnień do odpowiedniego katalogu. Konto umożliwiające wyłącznie FTP nie wystarczy.
Przed pierwszym transferem możesz sprawdzić logowanie:
Adres 192.0.2.10 jest przykładowy — zastąp go adresem swojego serwera. Przy pierwszym połączeniu klient może poprosić o zatwierdzenie odcisku klucza hosta, czyli identyfikatora klucza serwera. Porównaj go z informacją od administratora lub z zaufanego panelu dostawcy, zamiast zatwierdzać automatycznie.
Jak używać scp: trzy praktyczne przykłady
Podstawowy schemat polecenia to:
scp [opcje] źródło cel
Lokalizację zdalną zapisuje się najczęściej jako użytkownik@serwer:ścieżka. Dwukropek oddziela adres serwera od ścieżki pliku lub katalogu.
Wysłanie pliku na serwer: załóżmy, że w bieżącym katalogu masz archiwum strona.tar.gz, które chcesz umieścić w katalogu domowym użytkowniczki Anny:
scp strona.tar.gz [email protected]:/home/anna/
Pobranie pliku z serwera: odwróć kolejność źródła i celu. Kropka na końcu oznacza bieżący katalog na komputerze, na którym wykonujesz polecenie:
scp [email protected]:/home/anna/backup.zip .
Wysłanie całego katalogu: dodaj opcję -r, która włącza kopiowanie rekurencyjne, czyli obejmujące zawartość katalogu i jego podkatalogów:
scp -r ./zdjecia [email protected]:/home/anna/
Jeżeli SSH działa na porcie innym niż domyślny 22, wskaż go wielką literą -P, na przykład scp -P 2222 plik.txt [email protected]:/home/anna/. Małe -p ma inne znaczenie: zachowuje czasy dostępu i modyfikacji oraz bity uprawnień pliku. Lokalne ścieżki zawierające spacje ujmuj w cudzysłowy, na przykład "raport roczny.pdf".
Kiedy wybrać scp, SFTP albo rsync?
Nazwy SCP i SFTP bywają mylone, ponieważ oba rozwiązania korzystają z SSH. Historycznie były to różne protokoły przesyłania plików. Od OpenSSH 9.0 polecenie scp domyślnie realizuje transfer przez SFTP, choć zachowuje znajomą składnię.
W praktyce narzędzie dobieraj do zadania:
scp— do jednorazowego wysłania lub pobrania pliku, gdy znasz jego ścieżkę.- Klient SFTP — gdy chcesz przeglądać zdalne katalogi, wybierać pliki i zarządzać nimi interaktywnie, także w programie graficznym.
rsyncprzez SSH — do powtarzalnego kopiowania katalogów i przesyłania zmian zamiast ponownego kopiowania wszystkich danych. Zwykle wymaga dostępnościrsyncpo obu stronach.
Opcja -O w OpenSSH wymusza stary protokół SCP. Traktuj ją jako rozwiązanie szczególnego problemu zgodności, a nie domyślne ustawienie. Obsługiwane opcje i zachowanie swojej wersji sprawdzisz w lokalnej dokumentacji man scp lub oficjalnej dokumentacji OpenSSH.
Najczęstsze błędy i bezpieczny pierwszy transfer
Komunikat Permission denied może oznaczać błąd logowania albo brak uprawnień do pliku lub katalogu. Jeśli logowanie przez ssh działa, sprawdź, czy zdalny użytkownik może zapisywać w miejscu docelowym. No such file or directory zwykle wskazuje błędną ścieżkę, a Connection refused może oznaczać niewłaściwy port lub niedziałającą usługę SSH.
scp może nadpisać istniejący plik bez pytania. Przed wysłaniem danych sprawdź kolejność argumentów i zawartość katalogu docelowego. Pamiętaj też, że względna ścieżka zdalna jest zwykle liczona od katalogu domowego użytkownika, nie od katalogu otwartego na twoim komputerze.
Pierwszy test wykonaj na małym, nieistotnym pliku i prześlij go do osobnego katalogu. Po zakończeniu sprawdź jego obecność i zawartość — dopiero wtedy użyj tego samego schematu do właściwych danych.
Zobacz też: Co to jest AGI?
