50% de desconto todos os planos, por tempo limitado. A partir de $2.48/mo
12 min restantes
Servidores e SO

Copiar de Servidor Remoto para Máquina Local – Comandos SCP Linux

Ada Lovegood By Ada Lovegood 12 min de leitura
copiar arquivo de servidor remoto para máquina local

Já precisou transferir arquivos através de uma rede de computadores e enfrentou desafios de segurança? Bem, você não pode simplesmente jogar seus arquivos na rede e torcer para que se mantenham seguros, como no Chapeuzinho Vermelho! Você precisa de medidas de segurança. Deve usar um protocolo de transferência de arquivos que garanta que seus dados estejam protegidos contra acessos não autorizados, interceptação de rede, vazamentos de dados e outros tipos de ameaças.

Secure Copy Protocol (SCP) é um protocolo poderoso de transferência de arquivos em rede que copia arquivos entre diferentes máquinas na rede. Neste post, vamos nos familiarizar com esse protocolo e explorar as possibilidades de usar SCP de máquinas remotas para locais.

Como funciona o SCP? 

O SCP usa SSH (Secure Shell) para transferir seus arquivos. Mas o que isso significa? SSH é um protocolo de rede para acesso remoto seguro a servidores. Ele possui métodos para autenticação, criptografia e verificação da integridade dos arquivos transmitidos. O SCP usa esses recursos de segurança e métodos de criptografia fornecidos pelo SSH para transferir arquivos pela rede com segurança. Dessa forma, você pode usar SCP de remoto para local em servidores para conexão segura e transferência de arquivos, tendo certeza sobre a autenticidade e confidencialidade dos seus dados.

Usando SCP para transferência de arquivos: por quê e como? 

Usar SCP de remoto para local e SCP de local para remoto é uma forma eficiente e flexível de transferir arquivos. O SCP oferece grandes vantagens para transferência de arquivos. Por exemplo, o SCP oferece medidas de segurança mais robustas do que outros métodos de transferência de arquivos como FTP. Outro aspecto em que o SCP se diferencia de outros protocolos é a velocidade. O SCP geralmente é muito mais rápido do que outros protocolos como SFTP, e é uma excelente ferramenta para transferência de arquivos entre máquinas Linux.

Você pode mover arquivos com SCP:

  • De uma máquina local para uma máquina remota
  • De uma máquina remota para uma máquina local
  • De uma máquina remota para outra máquina remota.

Agora vamos prosseguir para usar a sintaxe do SCP Linux para transferência de arquivos. A primeira coisa que você precisa fazer é configurar SSH em ambos os seus computadores. No entanto, é importante observar que SSH normalmente vem instalado em todas as máquinas Linux. Portanto, se esse for o seu caso, você pode pular essas etapas.

1. Configurando SSH

Execute o comando a seguir para instalar SSH:

sudo apt install openssh-client

2. Gerando chaves SSH

O dispositivo cliente precisa estabelecer uma conexão SSH. Uma conexão segura entre máquinas cliente e servidor requer uma chave privada e uma chave pública. Este comando cria um par de chaves SSH para você:

ssh-keygen

Ao executar este comando, você provavelmente será solicitado a fornecer um nome para o par de chaves e uma frase-passe (opcional). Depois que o par de chaves for criado, você deve copiar a chave pública para a máquina servidor.

Agora, vamos examinar a forma geral do comando SCP:

scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
  • [options] > Este primeiro colchete pode ser substituído por diferentes opções do comando SCP, que abordaremos mais adiante.
  • [source username@IP] > Este colchete deve ser substituído pelo nome de usuário e endereço IP da máquina local. Por exemplo: [email protected]
  • [directory/file name] > Este colchete deve ser substituído pela localização do arquivo que você deseja enviar.
  • [destination username@IP] > Este colchete deve ser substituído pelo nome de usuário e endereço IP da máquina receptora.
  • [directory] > Substitua esta seção pela localização desejada do seu arquivo na máquina remota.

Agora que você conhece a forma geral do comando, vamos ver todas as opções úteis do comando SCP:

Opção Caso de uso
-C
Ao usar esta opção, SCP compacta seus arquivos durante a transferência.
-c <cipher>
Você pode usar esta opção para informar ao SCP qual cifra usar. Por exemplo: scp -c <aes128-ctr>.
-v
Esta opção fornece um fluxo passo a passo do processo.
-l <limit in kilobytes>
Esta opção permite que você estabeleça um limite para a largura de banda máxima. Por exemplo, o seguinte estabelece o uso de largura de banda em 100 kb por segundo: scp -l 100
-P
Ao usar esta opção, você pode alterar a porta SSH do servidor remoto ao qual deseja se conectar. SCP usa a porta 22 por padrão.
-S <nome do programa>
Você pode usar esta opção para escolher um programa para a conexão.
-r
Copiar um arquivo completo ou diretório recursivamente.

Transferindo arquivos com SCP 

Você se lembra de que temos três tipos de transferências com SCP, certo? Agora queremos explorar cada tipo de transferência independentemente. Mas vamos definir o objetivo antes de começar. Tenho uma foto de gato na área de trabalho do meu computador Linux e, no primeiro passo, quero transferi-la para um servidor remoto Linux. Depois vou transferi-la de volta para meu computador local. E por último, o gato sortudo se mudará entre duas máquinas remotas.

transferindo uma imagem usando SCP

SCP de local para remoto 

Este comando transferirá nosso arquivo de um computador local para um servidor remoto:

scp [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Para usar o comando SCP com senha, você deve digitar a senha do seu servidor remoto. Pronto.

Usando SCP para transferir arquivos de local para remoto

SCP de remoto para local

Para inverter este processo, você não precisa acessar o terminal do seu servidor remoto. No terminal do seu computador local, digite este comando:

scp [username]@[IP address of the remote machine]:[path/to/the/file] [path/to/the/location]

Como você pode ver, acabamos de inverter as duas partes deste comando.

Usando SCP para transferir arquivos de remoto para local

SCP entre duas máquinas remotas

Agora, vamos transferir o arquivo entre duas máquinas remotas. Você precisará da senha de ambas, então verifique se as tem. Use este comando para transferir um arquivo entre dois computadores remotos:

scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

usando scp para transferir arquivos entre dois sistemas remotos

Outros comandos SCP comuns

Os comandos SCP mais comuns são scp do remoto para o local, scp do local para o remoto e SCP entre dois hosts remotos. Mas não paramos por aí — vamos explorar outros exemplos úteis de scp:

1. Copiando um diretório inteiro recursivamente

Suponha que você queira transferir um diretório inteiro com todos os arquivos que ele contém. Transferir esses arquivos um a um seria muito demorado. Em vez disso, você pode usar o comando scp com múltiplos arquivos para copiar um diretório recursivamente:

scp -r [Path/to/directory] [username of the remote server]@[Ip address]:/[path/to/the/location]

Isso pode ser útil em várias situações:

  • Implantação de Código: ao fazer deploy de código ou aplicações web, você pode precisar transferir um diretório inteiro com todos os seus componentes, como arquivos e scripts.
  • Backup e sincronização: Se você quer fazer backup de um diretório inteiro ou sincronizar dois diretórios entre a máquina local e o servidor remoto, você precisa copiar tudo recursivamente.
  • Migração de Sistema: Uma tarefa crucial na migração de sistemas é copiar e transferir todas as informações vitais. Usar o comando SCP com a opção -r garante que você não perca nada durante o processo de migração.

2. Limitando o uso de largura de banda

Se você quer controlar a velocidade da transferência de dados, use este comando:

scp -l <limit> [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Por que você faria isso?
Nestes dois cenários, você pode usar a sintaxe scp para limitar a largura de banda:

  • Congestionamento de Rede: Se sua rede está muito congestionada, limitar a largura de banda com scp ajuda a distribuir os recursos de rede. Isso garante que outras tarefas de rede funcionem sem problemas. Isso também é importante ao transferir arquivos em uma rede compartilhada, já que seu processo pode prejudicar as atividades de rede de outros usuários.
  • Transferências em Segundo Plano: Durante transferências SCP em segundo plano, como backups automatizados ou processos de sincronização, há chances de essas tarefas consumirem seus recursos de rede. Neste caso, você pode limitar a largura de banda para gerenciar melhor os recursos.

3. Obtendo um log detalhado

Usar a opção -v com SCP fornece um log detalhado com informações adicionais sobre o processo de transferência. Use o comando abaixo para obter feedback e informações detalhadas:

scp -v [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Por que você precisa lembrar e usar este comando:

  • Resolução de problemas: essa opção mostra o progresso da transferência em tempo real. Você pode ver informações como tamanho do arquivo e porcentagem de conclusão. Também fornece mensagens de erro e avisos. Combinando esses dados, você consegue monitorar e resolver problemas do processo de transferência quando necessário.

4. Especificando uma porta SSH

Usar a sintaxe scp com a opção -P permite que você mude a porta. Aqui está o comando para fazer isso:

scp -P [port number] [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Isso pode ser útil para:

  • Configuração de Firewall: Se a porta padrão está restrita ou se você quer ocultar o serviço de possíveis ameaças, você pode mudar a porta.

Existem alternativas ao SCP?

SCP é rápido e seguro. Conhecendo a sintaxe correta e alguns conhecimentos de resolução de problemas, ele pode ser a única ferramenta que você precisa. Porém, não há mal em revisar suas alternativas.

1. rsync

rsync é uma ferramenta versátil de transferência de arquivos com recursos avançados de sincronização, transferências incrementais e cópia remota e local. Também pode reduzir o uso de largura de banda transferindo apenas as diferenças entre os arquivos de origem e destino. Outra grande vantagem do rsync é que ele consegue retomar transferências interrompidas de onde pararam e continuar o processo.

Vantagens do rsync

  • Sincronização eficiente de arquivos e diretórios.
  • Usa algoritmo de transferência delta, reduzindo o volume de dados transferidos.
  • Pode retomar transferências interrompidas.

Desvantagens do rsync

  • Requer que rsync esteja instalado nos sistemas de origem e destino.
  • Exige mais configuração e opções de comando em comparação com scp.

2. SFTP (Protocolo de transferência de arquivos SSH)

SFTP oferece um modo seguro de transferir arquivos via SSH. Funciona de forma semelhante a FTP, mas usa uma conexão SSH criptografada, assim como SCP. Porém, em vários aspectos, as vantagens de SFTP superam as de SCP. SCP não consegue listar diretórios, criar ou deletar pastas. SFTP, por sua vez, realiza todas essas operações.

Vantagens do SFTP

  • Transferência segura de arquivos com criptografia.
  • Gerenciamento remoto de arquivos.
  • Amplamente disponível na maioria dos sistemas Linux e Unix.

Desvantagens do SFTP

  • A sintaxe e o uso dos comandos diferem do FTP tradicional.
  • Pode ter suporte limitado em alguns sistemas embarcados ou dispositivos.

3. FTP (Protocolo de transferência de arquivos)

FTP é um protocolo padrão amplamente utilizado para transferência de arquivos. Funciona em modelo cliente-servidor e oferece funcionalidade básica de transferência.

Vantagens de FTP

  • Amplo suporte em várias plataformas.
  • Clientes de linha de comando e interface gráfica bem conhecidos estão disponíveis.

Desvantagens FTP

  • Sem criptografia / menos seguro em comparação com scp e sftp.
  • Pode exigir configuração adicional de firewall para estabelecer conexões.
  • Autenticação em texto simples.

No geral, enquanto scp é uma escolha simples e confiável para transferência segura de arquivos via SSH, alternativas como rsync, sftp e FTP podem oferecer recursos e flexibilidade adicionais conforme seus requisitos específicos.
Como decidir qual escolher? Considere fatores como segurança, necessidades de sincronização, facilidade de uso e compatibilidade com seus sistemas e protocolos. Por exemplo, se segurança e confidencialidade de dados são os fatores mais importantes na sua transferência de arquivos, FTP não é uma boa escolha.

Conclusão 

SCP é uma ferramenta rápida e segura para transferência de arquivos entre computadores. Você pode usar scp de remoto para local, de local para remoto, e até entre dois sistemas remotos para transferir arquivos. Embora existam alternativas ao SCP que funcionam adequadamente, como rsync, o SCP as supera em muitos aspectos, especialmente em segurança e velocidade. Neste artigo, abordamos SCP, seus casos de uso, alternativas e fornecemos um guia de comandos para fácil acesso à sintaxe mais usada.

Perguntas Frequentes 

Há alguma preocupação de segurança que devo ter ao usar SCP de remoto para local?  

SCP é uma ferramenta bastante segura, e você não precisa se preocupar com ameaças de segurança ao usá-la. Porém, sempre recomendamos tomar todas as medidas de segurança extras que puder.

Quais são alguns erros comuns ao usar SCP de remoto para local? 

Ao usar SCP para transferir arquivos de um servidor remoto para uma máquina local, os usuários podem encontrar vários erros comuns. Aqui estão dois dos erros mais frequentes ao usar SCP de remoto para local.

  1. Arquivo ou diretório não encontrado: esse erro ocorre quando você não especificou o número de porta correto, as permissões de arquivo estão incorretas ou as informações de login estão erradas.
  2. Falha na verificação da chave do host: essa mensagem de erro ocorre quando a chave do host foi alterada devido a atualizações do servidor. A chave do host mostra que você se conectou àquele servidor antes, e quando a verificação falha, indica que a identidade do servidor foi alterada. Esse erro tenta protegê-lo contra conexões com servidores fraudulentos.

Como faço para usar SCP para transferir arquivos entre sistemas remotos?

Para transferir arquivos com sucesso entre sistemas usando SCP, ambos os computadores devem estar acessíveis via SSH. Você também precisa do endereço IP e da senha das máquinas remotas. O resto é apenas usar o comando SCP correto.

scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

Após digitar este comando, você será solicitado a fornecer a senha dos servidores. Depois disso, seu arquivo será transferido.

Compartilhar

Mais do blog

Continue lendo.

Melhores Apps Auto-hospedados que Você Pode Executar com Cosmos Cloud imagem de capa com painéis de apps ao redor de um painel Cosmos.
Servidores e SO

Melhores Apps Auto-hospedados que Você Pode Executar com Cosmos Cloud: Arquivos, Mídia, Senhas, Automação e Mais!

Depois que você configurou Cosmos Cloud e quer ver quais apps funcionam bem com ele, ou talvez ainda nem tenha decidido usar Cosmos e só quer ver como se encaixa no seu fluxo de trabalho

Nick PrataNick Prata leitura de 16 minutos
Portainer vs Cosmos Cloud para Gerenciar Apps Docker capa com diagrama de configuração híbrida e blocos de acesso vs operações neon.
Servidores e SO

Portainer vs Cosmos Cloud: A Melhor Opção para Gerenciamento de Apps Docker

Se você já conhece Docker e quer apenas um jeito mais limpo de executar uma pilha de apps em crescimento, aqui está a resposta curta sobre Portainer vs Cosmos Cloud. Portainer é a escolha mais forte para o controle direto

Nick PrataNick Prata 14 min de leitura
Cosmos Cloud vs CasaOS vs Umbrel gráfico de recursos mostrando três caminhos auto-hospedados dentro de um mundo de rede em nuvem abstrata.
Servidores e SO

Cosmos Cloud vs CasaOS vs Umbrel: Qual Plataforma Auto-hospedada se Encaixa na Sua Configuração?

A resposta curta é que CasaOS ainda é o lugar mais fácil para começar, Umbrel tem o visual mais limpo e curado, e Cosmos Cloud faz mais sentido quando você quer controle mais apertado sobre seu domínio

Nick PrataNick Prata 11 minutos de leitura

Pronto para fazer o deploy? A partir de $2,48/mês.

Cloud independente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Reembolso em 14 dias.