Transferir arquivos para VMs do Linux


Para transferir arquivos para instâncias de VM do Compute Engine, opções diferentes estão disponíveis, dependendo do sistema operacional da estação de trabalho e do sistema operacional da instância de VM de destino.

Transferir de Para VMs do Linux
Linux ou macOS
Windows

Transferir arquivos pelo Cloud Storage

Os buckets do Cloud Storage podem ser usados como um ponto de transferência entre você e suas VMs. É possível usar um navegador da Web, a CLI do Google Cloud ou uma linguagem de programação para transferir arquivos entre o Cloud Storage e as VMs do Compute Engine.

Diferentes tipos de credenciais podem ser usados para a etapa de upload e de download conforme suas necessidades:

Para transferir arquivos entre um computador e uma VM com o Cloud Storage, faça isto:

  1. Crie um bucket do Cloud Storage se você já não tiver um bucket para transferências de arquivos.
  2. Use permissões do IAM para modificar o acesso ao bucket:
    • As contas que fazem upload de arquivos para o bucket precisam ter o papel de Administrador de objetos do Storage.
    • As contas que fazem o download de arquivos precisam ter o papel de Leitor de objetos do Storage.
  3. Faça login no dispositivo de origem e faça upload dos arquivos para o bucket.
  4. Faça login no dispositivo de destino e faça o download dos arquivos do bucket, concluindo a transferência.
  5. Opcional: exclua os arquivos que não são mais necessários para evitar cobranças indesejadas no armazenamento.

Se você precisar transferir arquivos na outra direção, reverta o processo. Verifique se a conta que está fazendo upload do arquivo tem acesso de gravação no bucket.

Transferir arquivos usando SSH no navegador

Se você conseguir estabelecer uma conexão SSH com uma VM usando o SSH no navegador, é possível usar essa conexão para transferir arquivos para e da VM.

Fazer upload para a VM

  1. No Console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Na lista de instâncias de máquina virtual, clique em SSH na linha da instância à qual você quer se conectar.

    Botão "SSH" ao lado do nome da instância.

  3. Depois que a conexão for estabelecida, clique no ícone de upload .

    Botão "Fazer upload".

    A caixa de diálogo de upload será aberta.

  4. Escolha os arquivos para fazer upload.
  5. Clique em Fazer upload de arquivos para fazer upload dos arquivos. O upload do arquivo é feito para o diretório /home/USER.

Fazer o download a partir da VM

  1. No Console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Na lista de instâncias de máquina virtual, clique em SSH na linha da instância à qual você quer se conectar.

    Botão "SSH" ao lado do nome da instância.

  3. Depois que a conexão for estabelecida, clique no ícone de download .

    Botão "Fazer download".

    A caixa de diálogo de download será aberta.

  4. Na caixa de texto Caminho, insira o caminho do arquivo relativo para download.
  5. Clique em Fazer download para fazer o download do arquivo. O download do arquivo é feito para a pasta de download padrão da estação de trabalho.

Transferir arquivos com o Google Cloud CLI

A Google Cloud CLI fornece um utilitário de transferência de arquivos Secure Copy Protocol (SCP) por meio de uma conexão SSH estabelecida.

Para transferir arquivos usando SCP, faça isto:

  1. Revise suas regras de firewall e confirme se as conexões SSH na porta 22 são permitidas. Caso contrário, crie uma regra de firewall SSH.
  2. Verifique se a gcloud CLI está instalada no dispositivo de origem que contém os arquivos a serem transferidos.
  3. Use o comando gcloud compute scp para transferir os arquivos para a máquina de destino.

No exemplo a seguir, copiamos um arquivo da estação de trabalho para o diretório inicial da VM:

gcloud compute scp LOCAL_FILE_PATH VM_NAME:REMOTE_DIR

Substitua:

  • LOCAL_FILE_PATH: o caminho do arquivo na sua máquina
  • VM_NAME: o nome da VM
  • REMOTE_DIR: um diretório na máquina remota

Também é possível copiar arquivos e diretórios da máquina remota. No exemplo a seguir, copiamos de maneira recursiva um diretório da origem para o destino:

gcloud compute scp --recurse VM_NAME:REMOTE_DIR LOCAL_FILE_PATH

Para mais informações, consulte a documentação de referência do gcloud compute scp.

Transferir arquivos usando SCP em estações de trabalho Linux e macOS

A ferramenta de linha de comando scp funciona de maneira semelhante ao comando gcloud compute scp, mas exige que você gerencie manualmente as chaves SSH.

Para transferir arquivos usando o SCP, é preciso que, na rede usada pela VM, exista uma regra de firewall que permita conexões SSH na porta 22. Para verificar se essa regra de firewall existe, procure uma regra que permita conexões tcp:22 no Console do Google Cloud.

Acessar as regras de firewall

Se você não tiver uma regra de firewall que permita conexões SSH na porta 22, crie a regra.

A ferramenta scp utiliza os mesmos arquivos de chave que você usa para se conectar às instâncias com SSH padrão.

  1. Se você ainda não aplicou uma chave pública ao projeto do Console do Google Cloud ou à instância de VM, crie um par de chaves SSH e adicione a chave pública ao projeto ou metadados de instância.

  2. Encontre o IP externo da VM para onde você quer enviar arquivos. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  3. Use a ferramenta scp para copiar um arquivo da estação de trabalho para o diretório inicial da VM de destino. Para este exemplo, a chave privada está em ~/.ssh/my-ssh-key.

    scp -i ~/.ssh/my-ssh-key LOCAL_FILE_PATH USERNAME@IP_ADDRESS:~
    

    Substitua:

    • LOCAL_FILE_PATH: o nome do arquivo local que você quer fazer upload.
    • USERNAME: seu nome de usuário.
    • IP-ADDRESS: o endereço IP externo da VM.

Também é possível copiar arquivos de uma VM para a estação de trabalho local invertendo as variáveis de origem e destino. Neste exemplo, copie um arquivo da VM para um caminho na estação de trabalho.

scp -i ~/.ssh/my-ssh-key USERNAME@IP_ADDRESS:REMOTE_FILE_PATH LOCAL_FILE_PATH

Substitua:

  • USERNAME: seu nome de usuário.
  • IP_ADDRESS: o endereço IP externo da VM.
  • REMOTE_FILE_PATH: o nome do arquivo remoto que você quer fazer o download.
  • LOCAL_FILE_PATH: o local na estação de trabalho onde você quer fazer o download do arquivo.

Transferir arquivos usando WinSCP em estações de trabalho do Windows

Nas estações de trabalho do Windows, o cliente WinSCP permite gerenciar arquivos nas instâncias por meio de uma interface gráfica do navegador de arquivos.

O WinSCP usa os mesmos arquivos de chave usados para se conectar a VMs usando o PuTTY.

  1. Faça o seguinte se você não tiver configurado a autenticação SSH com base em chave para a instância:

    1. Crie um par de chaves SSH usando PuTTYgen. A chave SSH particular precisa usar o formato .ppk, que é o padrão para chaves criadas pelo PuTTYgen.

    2. Adicione a chave SSH pública aos metadados do projeto ou da VM. Para mais informações, consulte Adicionar chaves SSH aos metadados do projeto ou Adicionar chaves SSH aos metadados da instância.

  2. Encontre o IP externo da VM para onde você quer enviar arquivos.

    1. No console do Google Cloud, acesse a página Instâncias de VMs.

      Acessar instâncias de VM

    2. Na lista de VMs, localize o endereço IP externo na coluna IP externo da sua VM.
  3. Faça o download e instale o WinSCP (em inglês). As configurações padrão de instalação funcionam para a maioria dos usuários.

  4. Execute o programa WinSCP. Uma janela de login será aberta. Nela, é possível definir as configurações de conexão.

  5. No WinSCP, defina as configurações de conexão.

    1. Selecione SCP como o protocolo de transferência de arquivos no campo Protocolo de arquivo.

    2. No campo Host Name, especifique o endereço IP externo da VM à qual você quer se conectar.

    3. No campo User name, especifique o nome de usuário Google que você usou para acessar o projeto. Neste exemplo, o usuário é example-user.

      Defina o protocolo de arquivos como SCP, o nome de host como 104.196.31.103 e o nome de usuário como example-user.

  6. Clique na lista suspensa Advanced para abrir as configurações avançadas e vá até SSH > Authentication.

  7. Na caixa Private key file, especifique o caminho para o arquivo da chave privada do par de chaves SSH criado para a VM.

    Defina o arquivo da chave privada como my-ssh-key.ppk na caixa de diálogo "Advanced Site Settings".

  8. Clique em Ok para salvar as configurações avançadas.

  9. Clique em Login para se conectar à VM. Se a conexão for bem-sucedida, a janela abrirá o sistema de arquivos local à esquerda e o sistema de arquivos da VM à direita. É possível acessar diferentes diretórios nesses sistemas de arquivos e arrastar os arquivos para transferi-los para a VM e a partir dela.

  10. Você provavelmente não tem permissão para gerenciar a maioria dos arquivos fora do diretório principal da VM. Navegue até o diretório inicial da VM:

    /home/USERNAME
    
  11. Use a interface do WinSCP para mover arquivos entre a estação de trabalho e a VM.

  12. Depois de copiar os arquivos para a VM, conecte-se à instância para executar ou mover arquivos com permissões sudo completas.

A seguir