Como 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 um ponto de transferência intermediário prático entre você e as VMs.

Esse método de transferência de arquivos funciona em quase todos os sistemas operacionais e tipos de VM, desde que sua VM tenha acesso ao bucket do Cloud Storage através de uma conta de serviço ou de suas credenciais pessoais de usuário.

Faça upload dos arquivos da sua estação de trabalho para um bucket do Cloud Storage. Depois, faça o download desses arquivos do bucket para as instâncias.

  1. Crie um bucket do Cloud Storage ou identifique um bucket atual que você pretende usar para transferir arquivos.
  2. Na sua estação de trabalho, faça o upload dos arquivos para o bucket.
  3. Conecte-se à VM usando SSH.
  4. Na sua instância, faça o download de arquivos pelo bucket.

Se você precisar transferir arquivos na outra direção, inverta o processo. Faça upload dos arquivos a partir da sua VM. Em seguida, faça o download desses arquivos para sua estação de trabalho.

Transferir arquivos usando SSH no navegador

Se você conseguir estabelecer uma conexão SSH com uma VM usando a janela SSH do navegador, utilize essa conexão para transferir arquivos para a VM.

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

    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 engrenagem no canto superior direito da janela SSH do navegador e selecione Fazer upload do arquivo. Como alternativa, selecione Fazer o download do arquivo para fazer o download de um arquivo da VM.
    Menu do ícone de engrenagem.
  4. A caixa de diálogo de transferência será aberta. Especifique o arquivo a ser transferido.

Se você tiver feito upload de um arquivo, ele estará no diretório /home/$USER do usuário.

Caso você tenha feito o download de um arquivo, ele estará na pasta de downloads padrão na estação de trabalho local.

Transferir arquivos usando a ferramenta de linha de comando gcloud

A ferramenta de linha de comando gcloud oferece um utilitário de transferência de arquivos SCP, criando um par de chaves SSH para você na primeira vez em que se conectar. A chave privada é armazenada no dispositivo local, e a chave pública correspondente é copiada para os metadados do projeto ou da instância de VM.

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.

Instale a ferramenta gcloud e use-a para copiar arquivos e diretórios para a VM com o comando scp.

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:~

Substitua:

  • LOCAL_FILE_PATH: o caminho do arquivo na estação de trabalho.
  • VM_NAME: o nome da VM.

Também é possível copiar arquivos e diretórios de uma VM para a estação de trabalho local. No exemplo a seguir, copiamos de maneira recursiva um diretório da VM (a origem) para a estação de trabalho (o destino).

gcloud compute scp --recurse VM_NAME:REMOTE_DIR LOCAL_DIR

Substitua:

  • VM_NAME: o nome da VM.
  • REMOTE_DIR: o caminho para o diretório na VM.
  • LOCAL_DIR: o caminho em que você quer colocar o diretório na estação de trabalho.

Para mais informações, consulte a documentação de referência 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 à instância de VM ou ao projeto do Console do Google Cloud, consiga um par de chaves SSH e aplique o arquivo de chave SSH pública ao projeto ou à instância de VM.

  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 VM.

    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 utilizados para se conectar às instâncias usando 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.

    2. Adicione a chave SSH pública aos metadados do projeto ou da VM. Para mais informações, consulte Como adicionar ou remover chaves SSH públicas em todo o projeto ou Como adicionar ou remover chaves SSH públicas em nível de 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 VM.

      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 navegue 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. Se você não souber o caminho da chave privada SSH, consulte Como localizar uma chave SSH. Neste exemplo, o arquivo de chave é my-ssh-key.ppk.

    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