Вы когда-нибудь хотели передать файлы по сети компьютеров и сталкивались с проблемами безопасности? Ну, вы не можете просто выкинуть свои файлы в сеть и пожелать, чтобы они оставались в безопасности, как Красная Шапочка! Вам нужны меры безопасности. Вам следует использовать протокол передачи файлов, который гарантирует защиту ваших данных от несанкционированного доступа, перехвата сети, утечки данных и других типов угроз.
Протокол безопасного копирования (SCP) — это мощный сетевой протокол передачи файлов, который передает файлы между разными компьютерами в сети. В этом сообщении блога мы поближе познакомимся с этим протоколом и изучим возможности использования SCP с удаленных компьютеров на локальные.
Как работает SCP?
SCP использует SSH (Secure Shell) для передачи ваших файлов. Но что это вообще значит? SSH — это сетевой протокол для безопасного и надежного удаленного доступа к серверам. Он оснащен методами аутентификации, шифрования и проверки целостности передаваемых файлов данных. SCP полагается на эти функции безопасности и методы шифрования, предоставляемые SSH, для безопасной передачи файлов по сети. Таким образом, вы можете использовать SCP с удаленных серверов на локальные для безопасного соединения и передачи файлов и быть уверенными в подлинности и конфиденциальности ваших данных.
Использование SCP для передачи файлов; Почему и как?
Использование SCP от удаленного к локальному и от локального к удаленному — это эффективный и гибкий способ передачи файлов. SCP предлагает некоторые важные преимущества для передачи файлов. Например, SCP предлагает более надежные меры безопасности, чем другие методы передачи файлов, такие как FTP. Еще одним аспектом, в котором SCP отличается от других протоколов, является скорость. SCP обычно намного быстрее, чем другие протоколы, такие как SFTP, и является отличным инструментом для передачи файлов между компьютерами Linux.
Вы можете перемещать файлы с помощью SCP:
- С локальной машины на удаленную машину
- С удаленной машины на локальную машину
- С удаленной машины на другую удаленную машину.
Теперь давайте перейдем к использованию синтаксиса Linux SCP для передачи файлов. Первое, что вам нужно сделать, это настроить SSH на обоих ваших компьютерах. Однако важно отметить, что SSH обычно устанавливается на всех машинах с Linux. Итак, если это ваш случай, вы можете пропустить эти шаги.
1. Настройка SSH
Запустите следующую команду для установки SSH:
sudo apt install openssh-client
2. Генерация ключей SSH
Затем клиентское устройство должно установить SSH-соединение. Для безопасного соединения между клиентскими и серверными компьютерами необходимо установить закрытый и открытый ключи. Эта команда создает для вас пару ключей SSH:
ssh-keygen
при выполнении этой команды вас, вероятно, попросят указать имя пары ключей и парольную фразу (это необязательно). Затем, когда пара ключей будет создана, вы должны скопировать открытый ключ на серверный компьютер.
Теперь давайте взглянем на общую форму команды SCP:
scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
- [опции] > Эту первую скобку можно заменить различными опциями команды SCP, о которых мы поговорим позже.
- [исходное имя пользователя@IP] > Эту скобку следует заменить именем пользователя и IP-адресом локального компьютера. Например: [email protected]
- [имя каталога/файла] > Эту скобку следует заменить местоположением файла, который вы хотите отправить.
- [имя пользователя назначения@IP] > Эту скобку следует заменить именем пользователя и IP-адресом принимающего компьютера.
- [каталог] > Замените этот раздел желаемым расположением вашего файла на удаленном компьютере.
Итак, теперь вы знаете, как выглядит общее командование. Давайте рассмотрим все полезные опции команды SCP:
| Вариант | Вариант использования |
| -C |
Используя эту опцию, SCP сжимает ваши файлы при их передаче.
|
| -c <шифр> |
Вы можете использовать эту опцию, чтобы указать SCP использовать определенный шифр. Например, scp -c <aes128-ctr>.
|
| -v |
Эта опция дает вам пошаговое описание процесса.
|
| -l <предел в килобайтах> |
Эта опция позволяет вам установить ограничение на максимальную пропускную способность. Например, в следующем примере задается использование полосы пропускания равным 100 КБ в секунду: scp -l 100
|
| -P |
Используя эту опцию, вы можете изменить ssh-порт удаленного сервера, к которому хотите подключиться. SCP по умолчанию использует порт 22.
|
| -S <имя программы> |
Эту опцию вы можете использовать для выбора программы для подключения.
|
| -r |
Рекурсивно скопируйте весь файл или каталог.
|
Передача файлов с помощью SCP
Итак, вы помните, что у нас есть три типа переводов с SCP, верно? Теперь мы хотим изучить каждый тип перевода в отдельности. Но давайте определим миссию, прежде чем начать. У меня есть эта фотография кошки на рабочем столе моего компьютера с Linux, и на первом этапе я хочу перенести ее на удаленный сервер Linux. Затем я перенесу его обратно на свой локальный компьютер. И наконец, кот-счастливчик будет перемещаться между двумя удаленными машинами.

SCP от локального к удаленному
Использование этой команды перенесет наш файл с локального компьютера на удаленный сервер:
scp [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Чтобы использовать команду scp с паролем, вам необходимо ввести пароль вашего удаленного сервера. И все готово.

SCP от удаленного к локальному
Чтобы обратить этот процесс вспять, вам не нужен доступ к терминалу вашего удаленного сервера. На терминале вашего локального компьютера введите следующую команду:
scp [username]@[IP address of the remote machine]:[path/to/the/file] [path/to/the/location]
Как видите, мы только что поменяли местами две части этой команды.

SCP между двумя удаленными машинами
Теперь перенесем кота между двумя удаленными машинами. Для этого шага требуется пароль для обоих удаленных компьютеров, поэтому убедитесь, что они у вас есть. Используйте эту команду для передачи файла между двумя удаленными компьютерами:
scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

Другие распространенные команды SCP
Наиболее распространенными командами SCP являются scp от удаленного к локальному, scp от локального к удаленному и SCP между двумя удаленными хостами. Но давайте не будем останавливаться на достигнутом и рассмотрим еще один полезный пример scp для Linux.
1. Рекурсивное копирование всего каталога
Представьте, что вы хотите перенести целый каталог со всеми содержащимися в нем файлами. Передача этих файлов один за другим заняла бы очень много времени. Вместо этого вы можете использовать команду scp Multiple Files для рекурсивного копирования каталога:
scp -r [Path/to/directory] [username of the remote server]@[Ip address]:/[path/to/the/location]
Это может быть полезно для многих сценариев:
- Развертывание кода: при развертывании кода или веб-приложений вам может потребоваться перенести весь каталог со всеми его компонентами, такими как файлы и сценарии.
- Резервное копирование и синхронизация: ЕСЛИ вы хотите создать резервную копию всего каталога или синхронизировать два каталога на локальном компьютере и удаленном сервере, вам необходимо скопировать все рекурсивно.
- Миграция системы: Важнейшей задачей при миграции системы является копирование и передача каждой части важной информации. Использование команды SCP с опцией -r позволит вам ничего не пропустить в процессе перемещения.
2. Ограничение использования полосы пропускания
Если вы хотите контролировать скорость передачи ваших данных, вы можете использовать следующую команду:
scp -l <limit> [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Хотя зачем вам это делать?
В этих двух сценариях вы можете использовать синтаксис Linux scp, чтобы установить ограничение пропускной способности:
- Перегрузка сети: Если ваша сеть сильно перегружена, ограничение пропускной способности с помощью scp может помочь в распределении сетевых ресурсов. Ограничение пропускной способности с помощью SCP гарантирует, что другие сетевые задачи будут выполняться без проблем. Это также важно при передаче файлов по общей сети, поскольку ваш процесс может препятствовать сетевой активности других пользователей.
- Фоновые передачи: Во время фоновой передачи SCP, например автоматического резервного копирования или процессов синхронизации, существует вероятность того, что эти задачи поглотят ваши сетевые ресурсы. В этом случае вы можете ограничить пропускную способность этих процессов передачи, чтобы лучше управлять ресурсами.
3. Получение подробного журнала
Использование опции -v с SCP предоставит вам подробный журнал с дополнительной информацией о процессе передачи. Вы можете использовать команду ниже, чтобы получить подробный отзыв и информацию:
scp -v [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Вот почему вам нужно запомнить и использовать эту команду:
- Поиск неисправностей: использование этой опции показывает ход передачи в действии. Вы можете увидеть такую информацию, как размер файла и процент завершения. Он также выдает сообщения об ошибках и предупреждения. Объединение этих данных позволяет отслеживать и устранять неполадки в процессе передачи, когда это необходимо.
4. Указание порта SSH
Использование синтаксиса scp Linux с опцией -P позволяет вам изменить порт SSH. Вот команда, которая позволяет вам это сделать:
scp -P [port number] [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Это может быть полезно для:
- Конфигурация брандмауэра: Если порт SSH по умолчанию ограничен или вы хотите скрыть службу SSH от потенциальных угроз, вы можете изменить порт SSH.
Есть ли альтернативы SCP?
SCP работает быстро и безопасно, и, зная правильный синтаксис scp Linux и некоторые знания по устранению неполадок, он может стать единственным инструментом, который вам нужен. Однако нет никакого вреда в рассмотрении его альтернатив.
1. рсинк
rsync — универсальный инструмент передачи файлов с расширенными возможностями синхронизации, инкрементной передачи, а также удаленного и локального копирования. Это также может снизить использование полосы пропускания, передавая только различия между исходными и целевыми файлами. Еще одним большим преимуществом использования rsync является то, что он может продолжить прерванную передачу файлов с того места, где она остановилась, и продолжить процесс.
Плюсы rsync
- Эффективная синхронизация файлов и каталогов.
- Поддерживает алгоритм дельта-передачи, сокращающий передачу данных.
- Может возобновить прерванную передачу.
Минусы rsync
- Требуется, чтобы rsync был установлен как в исходной, так и в целевой системе.
- Требует большего количества настроек и параметров команд по сравнению с scp.
2. SFTP (протокол передачи файлов SSH)
SFTP обеспечивает безопасный способ передачи файлов через SSH. Он предлагает аналогичную FTP функциональность, но работает через зашифрованное соединение SSH, как и SCP. Но в некоторых областях преимущества SFTP перевешивают преимущества SCP. SCP не может генерировать списки каталогов, создавать или удалять каталоги и т. д. Однако SFTP может выполнять все эти задачи.
Плюсы SFTP
- Безопасная передача файлов с шифрованием.
- Возможности удаленного управления файлами.
- Широкая доступность в большинстве систем Linux и Unix.
Минусы SFTP
- Синтаксис и использование команд отличаются от традиционного FTP.
- Может иметь ограниченную поддержку на некоторых встроенных системах или устройствах.
3. FTP (протокол передачи файлов)
FTP — широко используемый стандартный протокол для передачи файлов. Он работает по модели клиент-сервер и предлагает базовые функции передачи файлов.
FTP-плюсы
- Широкая поддержка на различных платформах.
- Доступны знакомые клиенты командной строки и графические клиенты.
Минусы FTP
- Не имеет шифрования/менее безопасен по сравнению с scp и sftp.
- Для установления соединений может потребоваться дополнительная настройка брандмауэра.
- Аутентификация в виде обычного текста.
В целом, хотя scp — это простой и надежный выбор для безопасной передачи файлов через SSH, альтернативы, такие как rsync, sftp и FTP, могут предлагать дополнительные функции и гибкость в зависимости от конкретных требований.
Так как же решить, какой из них выбрать? Вам следует учитывать такие факторы, как безопасность, необходимость синхронизации, простота использования и совместимость с вашими системами и протоколами. Например, если безопасность и конфиденциальность данных являются наиболее важными факторами при передаче файлов, FTP — не лучший выбор.
Заключение
SCP — это быстрый и безопасный инструмент для передачи файлов между компьютерами. Вы можете использовать scp от удаленного к локальному, от локального к удаленному и даже между двумя удаленными системами для передачи файлов. И хотя существуют альтернативы SCP, которые выполняют адекватную работу, например rsync, он превосходит их во многих отношениях, особенно в плане безопасности и скорости. В этом сообщении блога мы рассказали об SCP, вариантах его использования и альтернативах, а также предоставили шпаргалку для быстрого доступа к часто используемому синтаксису.
Часто задаваемые вопросы
Существуют ли какие-либо проблемы безопасности, о которых мне следует знать при использовании SCP от удаленного к локальному?
SCP — довольно безопасный и надежный инструмент, и вам не нужно беспокоиться об угрозах безопасности при его использовании. Тем не менее, всегда рекомендуется принимать любые дополнительные меры безопасности, которые вы можете.
Какие распространенные ошибки возникают при использовании удаленного SCP к локальному?
При использовании SCP для передачи файлов с удаленного сервера на локальный компьютер пользователи могут столкнуться с несколькими распространенными ошибками. Вот две наиболее распространенные ошибки при использовании удаленного SCP к локальному:
- Нет такого файла или каталога: эта ошибка возникает, если вы не указали правильный номер порта, неправильные настройки разрешений файла или неверные данные для входа.
- Ошибка проверки ключа хоста. Это сообщение об ошибке появляется, когда ключ хоста изменился из-за обновлений сервера. Ключ хоста показывает, что вы уже подключались к этому серверу раньше, а если проверка ключа хоста не удалась, это указывает на то, что личность сервера изменилась. Эта ошибка пытается защитить вас от подключения к мошенническому серверу.
Как использовать SCP для передачи файлов между удаленными системами?
Для успешной передачи файлов между системами с помощью SCP оба компьютера должны быть доступны через SSH. вам также понадобятся IP-адрес и пароль удаленных компьютеров. Остальное просто использует правильную команду SCP:
scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]
После ввода этой команды вам будет предложено ввести пароль для серверов. После этого ваш файл будет перенесен.