Как использовать команду SCP для передачи файлов
Безопасная передача файлов имеет первостепенное значение при использовании VPS. К счастью, это легко сделать с помощью команды SCP. В этой статье вы узнаете, как использовать команды SCP и как они могут работать на вас.
Что такое команды SCP? Основанный на протоколе удаленного копирования (RCP) Berkeley Software Distribution (BSD), SCP (Secure Copy) - это сетевой протокол передачи файлов, который позволяет легко и безопасно передавать файлы между удаленным и локальным хостом или двумя удаленными точками.
Разработчики полного стека часто используют команду SCP для функций аутентификации и шифрования, не требуя сторонних служб хостинга, таких как Github. Это простой способ предотвратить раскрытие ваших данных анализаторам пакетов, а также сохранить их конфиденциальность.
По сути, SCP представляет собой смесь RCP и SSH (Secure Shell). Он полагается на первый для выполнения операций копирования, а второй для шифрования информации и аутентификации удаленных систем.
В отличие от Rsync, все, что вам нужно для успешного использования командной строки SCP, - это имя пользователя и пароль или кодовая фраза для систем, участвующих в передаче. Это упрощает процесс, поскольку вам не нужно входить ни в одну из них.
В этом примере мы выполняем передачу между двумя серверами VPS.
Давайте поговорим о других параметрах, которые вы можете использовать для изменения команды SCP. Существует 20 распространенных из них, которые можно использовать как в односимвольной форме (-o), так и в их описательном эквиваленте (–option). Обычно используются следующие варианты:
Для аутентификации и настройки соединения вам нужно будет сгенерировать пару ключей ssh в терминале, используя следующую команду:
Если вы не помните пароль (-и) root для любой из систем, вы можете попросить ssh-клиент выбрать файл, из которого автоматически считывается закрытый ключ идентификации для подтверждения RSA.
Для протокола версии 2 путь идентификации по умолчанию для ключа хоста - ~ / .ssh / id_dsa , а для протокола версии 1 - ~ / .ssh / id_rsa . Затем вы должны выяснить, где хранятся резервные копии закрытого и открытого ключей, чтобы вы могли использовать команду ssh для их автоматического использования.
Для пути /back-up/home/jack/.ssh команда выглядит следующим образом:
Если вы переносите большие файлы, мы рекомендуем использовать сеанс tmux или запускать команду на другом экране. Более того, вы также должны использовать опцию –v для больших переводов. Это заставит scp отображать любые отладочные соединения, проблемы аутентификации или конфигурации.
Пример:
Пример:
В нормальных условиях файл переходит прямо с первого удаленного хоста на второй. Однако, если вы хотите перенаправить операцию через свой компьютер, вы можете добавить параметр -3 :
Кроме того, этот метод удаленной передачи файлов шифрует ваши данные с помощью защищенной оболочки, что гарантирует конфиденциальность передаваемой информации.
Что такое команды SCP? Основанный на протоколе удаленного копирования (RCP) Berkeley Software Distribution (BSD), SCP (Secure Copy) - это сетевой протокол передачи файлов, который позволяет легко и безопасно передавать файлы между удаленным и локальным хостом или двумя удаленными точками.
Разработчики полного стека часто используют команду SCP для функций аутентификации и шифрования, не требуя сторонних служб хостинга, таких как Github. Это простой способ предотвратить раскрытие ваших данных анализаторам пакетов, а также сохранить их конфиденциальность.
По сути, SCP представляет собой смесь RCP и SSH (Secure Shell). Он полагается на первый для выполнения операций копирования, а второй для шифрования информации и аутентификации удаленных систем.
В отличие от Rsync, все, что вам нужно для успешного использования командной строки SCP, - это имя пользователя и пароль или кодовая фраза для систем, участвующих в передаче. Это упрощает процесс, поскольку вам не нужно входить ни в одну из них.
Пример синтаксиса команды SCP
Базовый пример команды SCP выглядит так:scp [other options] [source username@IP]:/[directory and file name] [destination username@IP]:/[destination directory]
Сначала это может показаться сложным, но мы с радостью разберемся с этим!В этом примере мы выполняем передачу между двумя серверами VPS.
- [другие параметры] - это модификаторы, которые вы можете добавить к команде SCP. Мы рассмотрим самые популярные позже.
- [исходное имя пользователя @ IP] - это имя пользователя и IP-адрес машины, на которой находится нужный вам файл. Это будет выглядеть примерно так: root@123.123.123.12
- : / сообщает команде SCP, что вы собираетесь ввести исходный каталог
- [каталог и имя файла] - это место, где находится файл, и его имя. Похоже, /users/Edward/Desktop/SCP.png
- [имя пользователя назначения @ IP] - имя пользователя и IP-адрес конечной машины
- [каталог назначения], наконец, это каталог назначения, в котором будет сохранен файл.
scp -p root@162.168.1.1:/media/scp.png edward@162.168.1.2:/desktop/destination
Видите, это довольно просто! Если вы копируете на локальный компьютер или с него, вам не понадобятся IP-адрес, место назначения или исходный путь, например / desktop / имя_папки.Давайте поговорим о других параметрах, которые вы можете использовать для изменения команды SCP. Существует 20 распространенных из них, которые можно использовать как в односимвольной форме (-o), так и в их описательном эквиваленте (–option). Обычно используются следующие варианты:
- –P порт позволяет указать другую запись для сервера (порт TCP по умолчанию для команды - 22)
- –C cipher дает вам возможность указать алгоритм шифрования, который будет использовать клиент. Некоторые из значений, которые вы можете использовать: 'aes256-ctr', 'aes256-cbc', 'blowfish-cbc', 'arcfour', 'arcfour128', 'arcfour256', 'cast128-cbc', aes128-ctr ',' aes128-cbc ',' aes192-ctr ',' aes192-cbc 'и 3des-cbc'. Параметр по умолчанию в конфигурации оболочки - AnyStdCipher.
- –Q запустит операцию в тихом режиме, что означает, что будут отображаться только критические ошибки.
- –R - для рекурсивного копирования, которое будет включать все подкаталоги.
- -4 или -6 можно использовать, если вы хотите выбрать используемую версию протокола, IPv4 или IPv6. Вы также можете более полно настроить требования к IP-адресу с помощью ключевого слова address-family.
- –P сохранит время первоначальной модификации и атрибуты файла.
- –U удалит исходный файл после завершения передачи.
- –C включит сжатие данных во время операции передачи.
На что обратить внимание
Поскольку SCP использует шифрование SSH, вам понадобится пароль ssh для передачи файла. Более того, необходимо иметь разрешение на чтение на машине, с которой вы собираетесь копировать, и права записи на машины, на которые вы копируете.Для аутентификации и настройки соединения вам нужно будет сгенерировать пару ключей ssh в терминале, используя следующую команду:
ssh-keygen -t rsa
Вы копируете этот ключ в удаленную систему, используя:ssh-copy-id user@remote_machine
После аутентификации на удаленном компьютере (ах) открытый ключ будет скопирован, и вы будете готовы начать передачу.Если вы не помните пароль (-и) root для любой из систем, вы можете попросить ssh-клиент выбрать файл, из которого автоматически считывается закрытый ключ идентификации для подтверждения RSA.
Для протокола версии 2 путь идентификации по умолчанию для ключа хоста - ~ / .ssh / id_dsa , а для протокола версии 1 - ~ / .ssh / id_rsa . Затем вы должны выяснить, где хранятся резервные копии закрытого и открытого ключей, чтобы вы могли использовать команду ssh для их автоматического использования.
Для пути /back-up/home/jack/.ssh команда выглядит следующим образом:
ssh -i /back-up/home/user/.ssh/id_dsa user@yourserver.servername.domain
Совет от профессионалов: эта опция имеет значение по умолчанию –overwrite [yes] , поэтому, если вы не укажете параметр –overwrite no или –overwrite ask в команде scp, операция перезапишет те файлы с идентичными именами и расположениями без какого-либо предупреждения.Если вы переносите большие файлы, мы рекомендуем использовать сеанс tmux или запускать команду на другом экране. Более того, вы также должны использовать опцию –v для больших переводов. Это заставит scp отображать любые отладочные соединения, проблемы аутентификации или конфигурации.
Копирование файлов с помощью команды SCP
Самое приятное в SCP - это то, что он дает вам возможность передавать файлы между двумя хостами или между хостом и локальной машиной. Давайте посмотрим, как использовать команду для каждого типа перевода.Локальный файл в удаленное место
Мы скопируем локальный файл scp.zip пользователю удаленной машины с именем root . За именем пользователя следует IP-адрес сервера.Пример:
scp /users/Edward/desktop/scp.zip root@191.162.0.2:/writing/article
Если у вас не настроено автоматическое подтверждение клиента ssh, вам будет предложено ввести пароль от пользователя удаленной машины, и вы увидите индикатор выполнения. Это выглядело бы примерно так:root@191.162.0.2’s password:
novel3.zip 100% 0 0.0KB/s 00:00
Но предположим, что удаленный компьютер настроен на прослушивание SSH-подключений на порту, отличном от порта по умолчанию 22. В этом случае вы должны указать этот порт с помощью параметра.scp -P 2322 /users/Edward/desktop/scp.zip root@191.162.0.2:/writing/article
Если вы также хотите изменить имя файла во время операции передачи, ваша команда будет выглядеть следующим образом (если ваш порт не является портом по умолчанию, просто добавьте –P и номер порта):scp /users/Edward/desktop/scp.zip root@191.162.0.2:/writing/article/howtoscp.zip
Если вы хотите скопировать каталог , который имеет несколько файлов и / или подкаталогов, используйте - г командной строки мы описали ранееscp -r /users/Edward/desktop root@191.162.0.2:/writing/article
Удаленный файл на локальный компьютер
В этом процессе источник и цель команды меняются местами, поэтому это должно быть отражено в вашем синтаксисе. На этот раз мы пытаемся скопировать scp.zip с того же удаленного хоста на нашу локальную машину:scp root@191.162.0.2:/writing/articles/SCP.zip Users/Edward/Desktop
Опять же, это должно вызвать тот же вывод для входа в систему SSH, где вы должны ввести пароль, если только аутентификация не была отключена привилегиями sudo или вы не заставили ssh-клиент использовать закрытый ключ на вашем компьютере.Удаленный файл в другое удаленное место
Чтобы скопировать файлы с одного удаленного хоста на другой, вам нужно будет ввести пароли для обеих учетных записей после запуска этой команды в своем терминале.Пример:
scp root@191.162.0.2:/writing/article/scp.zip edward@11.10.0.1:/publishing
Приведенная выше команда копирует исходный файл /writing/article/scp.zip с первого хоста на второй. Чтобы скопировать папки, просто добавьте параметр –r и укажите путь к папке вместо файла внутри нее, как мы делали раньше.В нормальных условиях файл переходит прямо с первого удаленного хоста на второй. Однако, если вы хотите перенаправить операцию через свой компьютер, вы можете добавить параметр -3 :
scp -3 root@191.162.0.2:/writing/article/scp.zip edward@11.10.0.1:/publishing
Вот и все, что нужно сделать!Подведение итогов
В этой статье мы узнали, как легко передавать файлы между удаленными и локальными хостами с помощью команды scp. Это чрезвычайно полезно, когда вы работаете с несколькими серверами. Протокол безопасного копирования упрощает успешное копирование информации с одного удаленного хоста на другой без необходимости входа в систему.Кроме того, этот метод удаленной передачи файлов шифрует ваши данные с помощью защищенной оболочки, что гарантирует конфиденциальность передаваемой информации.
Комментариев 0