Использование SCP для перемещения файлов на виртуальную машину и из нее

Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Гибкие масштабируемые наборы

В этой статье показано, как перемещать файлы между рабочей станцией и виртуальной машиной Azure, используя протокол SCP. Быстрое и безопасное перемещение файлов между рабочей станцией и виртуальной машиной является важной частью управления инфраструктурой Azure.

Для работы с этой статьей вам потребуется виртуальная машина с включенным протоколом SSH, развернутая в Azure. Кроме того, нужен клиент SCP для локального компьютера. Он построен на основе SSH и включен в оболочку по умолчанию большинства установок Linux и Windows (10 и более новых версий).

Быстрые команды

Отправка файла на виртуальную машину

scp file azureuser@azurehost:directory/targetfile

Скачивание файла с виртуальной машины

scp azureuser@azurehost:directory/file targetfile

Подробное пошаговое руководство

В качестве примера мы переместим файл конфигурации Azure на виртуальную машины и извлечем каталог файлов журнала, используя SCP.

Аутентификация с помощью пары ключей SSH

SCP использует SSH на транспортном уровне. Протокол SSH осуществляет аутентификацию на целевом узле, перемещая файл в зашифрованный канал, который по умолчанию предоставляется для SSH-подключения. Для аутентификации SSH можно использовать имена пользователей и пароли. Тем не менее по соображениям безопасности рекомендуется использовать аутентификацию с открытым и закрытым ключами SSH. После аутентификации подключения с помощью SSH инструмент SCP начинает копирование файла. При использовании правильно настроенных ~/.ssh/config и закрытых ключей SSH подключение SCP можно установить только с помощью имени сервера (или IP-адреса). При наличии только одного ключа SSH инструмент SCP будет искать его в каталоге ~/.ssh/ и использовать по умолчанию для входа на виртуальную машину.

Дополнительные сведения о настройке файла ~/.ssh/config, а также открытом и закрытом ключах SSH см. в статье Как создать и использовать пару из открытого и закрытого ключей SSH для виртуальных машин Linux в Azure.

Отправка файла на виртуальную машину

В первом примере файл конфигурации Azure копируется на виртуальную машину, которая используется для автоматизации развертывания. Так как этот файл содержит учетные данные API Azure, в том числе секреты, важно обеспечить его безопасность. Зашифрованный туннель, предоставляемый SSH-подключением, защищает содержимое файла.

Следующая команда копирует локальный файл .azure/config на виртуальную машину Azure с полным доменным именем myserver.eastus.cloudapp.azure.com. Если полное доменное имя не задано, можно также использовать IP-адрес виртуальной машины. Имя пользователя администратора на этой виртуальной машине Azure — azureuser. Файл копируется в каталог /home/azureuser. Подставьте собственные значения в эту команду.

scp ~/.azure/config azureuser@myserver.eastus.cloudapp.com:/home/azureuser/config

Скачивание каталога с виртуальной машины

В этом примере выполняется копирование каталога с файлами журнала с виртуальной машины на вашу рабочую станцию. Файл журнала может содержать или не содержать секретные данные. Однако применение SCP гарантирует шифрование содержимого файлов журналов. Каталог журнала может содержать слишком много соответствующих файлов для копирования по одному за раз, поэтому скачивание всего каталога предпочтительнее в этой ситуации. Самый простой способ передать каталог и файлы журналов на рабочую станцию — использовать SCP для безопасной передачи файлов.

Следующая команда копирует файлы из каталога /home/azureuser/logs/ на виртуальной машине Azure в локальный каталог /tmp.

scp -r azureuser@myserver.eastus.cloudapp.com:/home/azureuser/logs/. /tmp/

Если в командной строке указан флаг -r, SCP рекурсивно копирует файлы и каталоги, начиная с указанного в команде места в иерархии каталогов. Обратите также внимание, что синтаксис для командной строки аналогичен синтаксису команды копирования cp.

Следующие шаги