Поиск по сайту:

Как скопировать файлы с помощью SSH и PIPE на удаленный хост


Secure Shell (SSH) — это безопасный способ подключения к удаленному компьютеру, например серверу, с удаленного клиента. На клиентских и серверных машинах должен быть установлен SSH. После создания соединения вы можете передавать файлы с клиента на удаленный хост или наоборот.

Надежным способом копирования файлов с одного компьютера на другой является использование протокола безопасного копирования (SCP). С помощью SCP вы можете копировать файлы и папки с клиента на удаленный хост с помощью строки кода. Точно так же вы можете загрузить файлы с удаленного хоста на локальный компьютер. В этом руководстве описаны шаги по использованию SCP для копирования файлов с помощью SSH и передачи их на удаленный хост.

Как использовать SCP для копирования и передачи файлов через SSH на удаленный хост

SSH и SCP работают вместе. SSH создает безопасное соединение между клиентом и сервером. С другой стороны, SCP удобен в качестве сетевого протокола передачи файлов, который обеспечивает безопасный способ передачи файлов между локальным и удаленным хостом. SCP использует аутентификацию, созданную SSH, для авторизации передачи файлов.

Существуют различные варианты использования SCP; вы можете обратиться к его справочной странице. А пока давайте посмотрим на различные способы использования SCP для передачи файлов:

1. Копирование файлов с локального клиента на удаленный сервер

При подключении к серверу может потребоваться передача файлов на удаленный сервер. В этом случае SCP выполняет свою работу. Если у вас есть имя пользователя и пароль удаленного хоста, вы можете использовать следующий синтаксис для передачи файлов:

$ scp /path/to-target/file-to-transfer username@server-ip:/path-to-save/

Вот пример. Для запуска команды требуется SSH-аутентификация ключа, прежде чем продолжить:

После аутентификации ключа необходимо ввести пароль удаленного сервера, чтобы подключиться к нему и передать файлы.

После передачи файла на экране отображаются процентное значение и имя файла, подтверждающие успешную передачу файла. Мы передаем файл1 на удаленный хост.

Получив доступ к нашему серверу, мы можем просмотреть содержимое каталога, чтобы проверить, передан ли файл. В этом случае наш файл передается с локального клиента на удаленный сервер.

$ ls

Чтобы передать несколько файлов, добавьте их имена через пробел. Файлы должны быть в одном каталоге. Выполните команду, подобную приведенной ниже, и SCP передаст все включенные файлы на удаленный хост:

При успешной передаче терминал отображает процент передачи и все файлы, как в следующем случае:

При копировании файлов вы можете называть их по-разному при копировании на удаленный хост. Например, в следующем примере мы копируем файл с именем linux-console.sh и сохраняем его как coied.sh. Хитрость заключается в том, чтобы добавить путь, по которому вы хотите сохранить скопированный файл, и предпочитаемое имя для его сохранения, как показано на следующем рисунке:

Копирование каталога аналогично копированию файла. Разница в том, что для каталога необходимо добавить его полный путь на локальном хосте. В следующем примере мы копируем /copy-me:

2. Копирование файлов с удаленного сервера и PIPE на локальный клиент

Синтаксис копирования файлов с удаленного хоста и их сохранения на локальном хосте немного отличается. Вы начинаете с SSH-подключения к удаленному серверу и пути к файлу или каталогу, который вы хотите скопировать. Наконец, добавьте путь для копирования файла на локальный хост.

$ scp <a href="mailto:username@server-ip">username@server-ip</a>:/path/to-file /local-host/path-to-save-file

Вот пример копирования файла с именем linux-console в текущий каталог на локальном хосте:

Чтобы скопировать каталог, добавьте параметр -r , как показано в следующем примере. Убедитесь, что удаленный каталог загружен и сохранен по указанному пути с помощью команды ls :

Чтобы сохранить скопированный файл или каталог с удаленного хоста под другим именем, добавьте путь, по которому вы хотите его сохранить, и укажите, какое имя использовать, как показано ниже:

Ваш целевой файл успешно скопирован и сохранен с добавленным именем.

Заключение

SSH поддерживает создание безопасного соединения с удаленным хостом. Кроме того, вы можете передавать файлы между локальным хостом и удаленным сервером с помощью SCP. В этом руководстве представлены различные примеры совместного использования файлов и каталогов между локальными и удаленными хостами. Попробуйте!

Статьи по данной тематике: