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