Що таке scp і як копіювати файли через SSH

Автор: Опубліковано

Коротко: В інформатиці 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, хоча зберігає звичний синтаксис.

На практиці вибирайте інструмент відповідно до завдання:

Параметр -O в OpenSSH примусово вмикає старий протокол SCP. Розглядайте його як спосіб розв’язати конкретну проблему сумісності, а не як стандартне налаштування. Підтримувані параметри й поведінку своєї версії можна перевірити в локальній документації man scp або в офіційній документації OpenSSH.

Найпоширеніші помилки та безпечне перше передавання

Повідомлення Permission denied може означати помилку входу або відсутність прав доступу до файлу чи каталогу. Якщо вхід через ssh працює, перевірте, чи має віддалений користувач право записувати дані в місці призначення. No such file or directory зазвичай указує на неправильний шлях, а Connection refused може означати неправильний порт або те, що служба SSH не працює.

scp може перезаписати наявний файл без запиту. Перед надсиланням даних перевірте порядок аргументів і вміст цільового каталогу. Пам’ятайте також, що відносний шлях на віддаленому комп’ютері зазвичай відлічується від домашнього каталогу користувача, а не від каталогу, відкритого на вашому комп’ютері.

Для першої перевірки візьміть невеликий, неважливий файл і передайте його в окремий каталог. Після завершення перевірте його наявність і вміст — лише тоді використовуйте ту саму схему для потрібних даних.

Дивіться також: Що таке AGI?

Читайте також

Дізнайтеся, як PHP-FPM обробляє запити PHP, чим відрізняється від вебсервера та як налаштувати процеси під трафік і ресурси хостингу.
Дізнайтеся, як BIND обслуговує DNS, чим відрізняються його серверні ролі та коли варто розгортати його самостійно замість керованої послуги.
Дізнайтеся, що означають польський реєстр і номер REGON, чим вони відрізняються від NIP та KRS і як перевірити дані підприємства.