Usar SCP para mover arquivos de e para uma VM
Aplica-se a: ✔️ VMs Linux ✔️ VMs Windows ✔️ Conjuntos de dimensionamento flexíveis
Este artigo mostra como mover arquivos da estação de trabalho para uma VM do Azure ou de uma VM do Azure para a estação de trabalho, usando o SCP (Cópia Segura). Mover arquivos entre a estação de trabalho e uma VM, de forma rápida e segura, é uma parte crítica do gerenciamento da infraestrutura do Azure.
Para este artigo, você precisará de uma VM implantada no Azure com SSH habilitado. Você também precisa de um cliente SCP para o computador local. Ele é criado com base em SSH e incluído no shell padrão da maioria das instalações Linux e Windows (10 e mais recentes).
Comandos rápidos
Carregar um arquivo na VM
scp file azureuser@azurehost:directory/targetfile
Baixar um arquivo da VM
scp azureuser@azurehost:directory/file targetfile
Passo a passo detalhado
Como exemplo, movemos um arquivo de configuração do Azure para uma VM e efetuamos pull de um diretório de arquivos de log, ambos usando o SCP.
Autenticação de par de chaves SSH
O SCP usa o SSH para a camada de transporte. O SSH manipula a autenticação no host de destino e também move o arquivo em um túnel criptografado fornecido por padrão com o SSH. Para autenticação de SSH, nomes de usuário e senhas podem ser usados. No entanto, a autenticação de chaves SSH públicas e privadas é recomendada como uma melhor prática de segurança. Depois de o SSH autenticar a conexão, o SCP inicia a cópia do arquivo. Quando você usa um ~/.ssh/config
configurado corretamente e chaves SSH pública e privada, a conexão do SCP pode ser estabelecida sem o uso de um nome de usuário, com apenas um nome do servidor (ou endereço IP). Se você tiver apenas uma chave SSH, o SCP a procurará no diretório ~/.ssh/
e a usará por padrão para fazer logon na VM.
Para obter mais informações sobre como configurar o ~/.ssh/config
e chaves SSH pública e privada, veja Create SSH keys (Criar chaves SSH).
Carregar um arquivo na VM
Para o primeiro exemplo, copiamos um arquivo de configuração do Azure para uma VM usada para implantar a automação. Já que esse arquivo contém credenciais de API do Azure, as quais incluem segredos, a segurança é importante. O túnel criptografado fornecido por SSH protege o conteúdo do arquivo.
O comando a seguir copia o arquivo local .azure/config para uma VM do Azure com o FQDN myserver.eastus.cloudapp.azure.com. Se você não tiver um FQDN definido, também é possível usar o endereço IP da VM. O nome de usuário administrador na VM do Azure é azureuser. O arquivo é direcionado para o diretório /home/azureuser/. Substitua seus próprios valores nesse comando.
scp ~/.azure/config azureuser@myserver.eastus.cloudapp.com:/home/azureuser/config
Baixar um diretório de uma VM
Neste exemplo, copiamos um diretório de arquivos de log da VM para a estação de trabalho. Um arquivo de log pode ou não conter dados confidenciais ou segredos. No entanto, usar o SCP garante que o conteúdo dos arquivos de log é criptografado. Um diretório de log pode conter muitos arquivos relevantes para copiar um de cada vez, portanto, é preferível baixar todo o diretório nessa situação. Usar o SCP para transferir os arquivos é a maneira mais fácil de enviar o diretório de log e os arquivos para a estação de trabalho e, ao mesmo tempo, permanecer seguro.
O comando a seguir copia os arquivos no diretório inicial/azureuser/logs/ na VM do Azure para o diretório local /tmp:
scp -r azureuser@myserver.eastus.cloudapp.com:/home/azureuser/logs/. /tmp/
O sinalizador -r
instrui o SCP a copiar os arquivos e diretórios recursivamente do ponto do diretório listado no comando. Observe também que a sintaxe de linha de comando é semelhante a um comando de cópia cp
.