Що таке scp і як копіювати файли через SSH
Автор: Редакція Domeny.ForSale Опубліковано
Коротко: В інформатиці SCP (Secure Copy Protocol) означає спосіб безпечного копіювання файлів між комп’ютерами, а scp — команду для такого передавання через SSH, тобто зашифроване з’єднання з віддаленою системою. Нею можна надіслати файл на сервер або завантажити резервну копію на власний комп’ютер. Сучасні версії scp з пакета OpenSSH за замовчуванням використовують протокол SFTP замість старішого протоколу SCP. Абревіатура також трапляється в назві вигаданого всесвіту SCP Foundation — це інше значення, не пов’язане з передаванням даних.
Для чого потрібна scp і як вона працює?
Команда scp копіює дані з указаного джерела до місця призначення. Типові завдання — передати архів сайту на сервер, завантажити журнали для аналізу або скопіювати файл конфігурації. Команду запускають у терміналі, указуючи шляхи та дані доступу до віддаленого комп’ютера.
SSH шифрує з’єднання та забезпечує автентифікацію, тобто перевірку ідентичності сторін з’єднання. Користувач зазвичай входить за допомогою пароля або ключа SSH. Ключ складається з пари пов’язаних елементів: публічний розміщують на сервері, а приватний зберігають на власному комп’ютері й захищають від розголошення.
Проте шифрування під час передавання не означає, що файл залишається зашифрованим після запису на диск. scp також не є повноцінною системою резервного копіювання: сама команда не забезпечує історії версій, ротації архівів чи перевірки можливості відновлення даних.
Що потрібно підготувати перед копіюванням?
На комп’ютері, з якого ви запускаєте передавання, потрібен клієнт scp. Він доступний у багатьох інсталяціях Linux і macOS, а у Windows можна користуватися клієнтом OpenSSH. Його наявність можна перевірити командою ssh -V, а доступність самої scp — запустивши scp без аргументів; програма має показати інформацію про синтаксис.
На сервері має працювати SSH, а для стандартного режиму сучасного OpenSSH потрібна також підтримка SFTP. Вам знадобляться адреса сервера, ім’я користувача, спосіб входу та права доступу до відповідного каталогу. Облікового запису, який дозволяє лише FTP, недостатньо.
Перед першим передаванням можна перевірити вхід:
Адреса 192.0.2.10 наведена як приклад — замініть її адресою свого сервера. Під час першого з’єднання клієнт може попросити підтвердити відбиток ключа хоста, тобто ідентифікатор ключа сервера. Порівняйте його з інформацією від адміністратора або з надійної панелі керування постачальника, а не підтверджуйте автоматично.
Як користуватися scp: три практичні приклади
Базова схема команди:
scp [parametry] dzherelo pryznachennia
Віддалене розташування найчастіше записують як korystuvach@server:shliakh. Двокрапка відділяє адресу сервера від шляху до файлу або каталогу.
Надсилання файлу на сервер: припустімо, у поточному каталозі є архів sait.tar.gz, який ви хочете розмістити в домашньому каталозі користувачки Анни:
scp strona.tar.gz [email protected]:/home/anna/
Завантаження файлу із сервера: поміняйте місцями джерело й місце призначення. Крапка в кінці означає поточний каталог на комп’ютері, де ви виконуєте команду:
scp [email protected]:/home/anna/backup.zip .
Надсилання всього каталогу: додайте параметр -r, який вмикає рекурсивне копіювання, тобто копіювання вмісту каталогу та його підкаталогів:
scp -r ./foto [email protected]:/home/anna/
Якщо SSH працює на порту, відмінному від стандартного 22, укажіть його параметром із великою літерою -P, наприклад scp -P 2222 fail.txt [email protected]:/home/anna/. Параметр із малою літерою -p має інше значення: він зберігає час доступу й зміни, а також біти прав доступу до файлу. Локальні шляхи з пробілами беріть у лапки, наприклад "richnyi zvit.pdf".
Коли вибрати scp, SFTP або rsync?
Назви SCP і SFTP іноді плутають, оскільки обидва рішення використовують SSH. Історично це були різні протоколи передавання файлів. Починаючи з OpenSSH 9.0, команда scp за замовчуванням передає дані через SFTP, хоча зберігає звичний синтаксис.
На практиці вибирайте інструмент відповідно до завдання:
scp— для разового надсилання або завантаження файлу, коли ви знаєте шлях до нього.- Клієнт SFTP — якщо хочете переглядати віддалені каталоги, вибирати файли та керувати ними інтерактивно, зокрема в програмі з графічним інтерфейсом.
rsyncчерез SSH — для регулярного копіювання каталогів і передавання змін замість повторного копіювання всіх даних. Зазвичай для цьогоrsyncмає бути доступний на обох комп’ютерах.
Параметр -O в OpenSSH примусово вмикає старий протокол SCP. Розглядайте його як спосіб розв’язати конкретну проблему сумісності, а не як стандартне налаштування. Підтримувані параметри й поведінку своєї версії можна перевірити в локальній документації man scp або в офіційній документації OpenSSH.
Найпоширеніші помилки та безпечне перше передавання
Повідомлення Permission denied може означати помилку входу або відсутність прав доступу до файлу чи каталогу. Якщо вхід через ssh працює, перевірте, чи має віддалений користувач право записувати дані в місці призначення. No such file or directory зазвичай указує на неправильний шлях, а Connection refused може означати неправильний порт або те, що служба SSH не працює.
scp може перезаписати наявний файл без запиту. Перед надсиланням даних перевірте порядок аргументів і вміст цільового каталогу. Пам’ятайте також, що відносний шлях на віддаленому комп’ютері зазвичай відлічується від домашнього каталогу користувача, а не від каталогу, відкритого на вашому комп’ютері.
Для першої перевірки візьміть невеликий, неважливий файл і передайте його в окремий каталог. Після завершення перевірте його наявність і вміст — лише тоді використовуйте ту саму схему для потрібних даних.
Дивіться також: Що таке AGI?
