Команда SCP (Secure Copy) - это метод шифрования передачи файлов между системами Unix или Linux. Это более безопасный вариант команды cp

Команда SCP Linux: безопасное копирование и передача файлов
SCP включает шифрование через соединение SSH (Secure Shell). Это гарантирует, что даже если данные будут перехвачены, они будут защищены.

Как безопасно копировать файлы с помощью SCP
Копировать файл с локального на удаленный сервер с помощью SCP
Команда scp
позволяет использовать подстановочные знаки.
Используйте символ тильды ~/
для обозначения home/user
каталога пользователя.
Вы можете указать строку текста со знаком *
.
Например, /~/*.txt
заставит SCP скопировать все файлы в домашнем каталоге, которые заканчиваются на .txt
.
Как правило, вам не нужно указывать расположение файла в текущем каталоге. Если вы находитесь в каталоге /home/user
и хотите скопировать файл test.txt
на сервер, вы можете ввести следующее:
scp test.txt username2@destination:/location2
Чтобы скопировать все файлы .txt
в домашний каталог username2
, введите следующее:
scp *.txt username2@destination_host:/~/
Если вы укажете только каталог назначения, SCP оставит имя файла как есть.
Чтобы изменить имя файла, определите новое имя файла в месте назначения:
scp test.txt username2@destination_host:/user/home/user1test.txt
В этом примере файл test.txt
копируется с локального компьютера, а затем сохраняется как user1test.txt
в каталоге пользователя системы назначения.
Если удаленная система настроена на прослушивание SSH-запросов на порт, отличный от порта 22 по умолчанию, используйте переключатель –P
, чтобы указать порт:
scp –P 1234 test.txt user2@destination_host:/location2/
Это копирует test.tx
t из вашей локальной системы на целевой хост, используя порт 1234.
Копировать с одного удаленного хоста на другой
Вы не ограничены только подключением между локальным компьютером и удаленным сервером.
Чтобы скопировать из одной удаленной системы в другую:
scp user1@host1.com:/files/test.txt user2@user2.com:/files
Это приведет к репликации файла test.txt
из каталога /files
на host1.com в каталог /files
на /host2.com. Система предложит вам ввести пароль для пользователей user1 и user2 до завершения операции.
Копирование больших файлов с помощью SCP
Если вы копируете большие файлы, запустите команду в терминальном мультиплексоре, например tmux
.
Если операция прервана, мультиплексор позволит вам возобновить копирование без необходимости начинать заново.
Вы можете проверить, установлен ли в вашей системе tmux
, выполнив в терминале следующее:
tmux -V
Рекомендации по использованию SCP
Команда scp
не проверяет место назначения перед записью. Любые файлы в месте назначения с тем же именем будут перезаписаны без уведомления.
Вам будет предложено ввести пароль, когда вы нажмете Enter.
Используйте пароль пользователя в удаленной системе.
Управление разрешениями
В исходной системе вам потребуется учетная запись с доступом для чтения к файлам, которые вы хотите скопировать.
В системе назначения вам потребуется учетная запись с правом записи в каталог, в котором будут сохранены файлы. Если вы столкнетесь с ошибками при копировании, вы можете попробовать учетную запись пользователя root для устранения неполадок с разрешениями.
Параметры команды SCP
Базовый синтаксис SCP:
scp [options] username1@source_host:/location1/file1 username2@destination_host:/location2/file2
Вот некоторые общие параметры команды scp:
–P
- Указать порт SSH сервера–p
- сохранить метку времени для изменения и доступа (обратите внимание на строчные буквы)–q
- тихий режим, без отображения прогресса или сообщений (все равно будут отображаться ошибки)–C
- Сжимать данные во время передачи–r
- Рекурсивно - включать подкаталоги и их содержимое
Раздел, следующий сразу за параметрами, - это источник (путь) файла, который вы хотите скопировать. Вы можете скопировать из своей системы в удаленную или наоборот.
В следующем разделе указывается место, куда копируется файл. Например:
scp user@local_system:/home/user/test.txt admin@remote_system:/home/user
Это скопирует документ test.txt
из пользовательского каталога в локальной системе и поместит копию в каталог учетной записи администратора в удаленной системе.
Другой пример SCP - чтобы скопировать файл с удаленного хоста на локальный:
scp user@from_host:file.txt /local/directory/
Итоги
В этом руководстве вы узнали, что такое команда scp
и как ее использовать для защиты передачи файлов.