Saiba como o comando SCP Linux pode ajudar você em sua jornada para transferir arquivos em máquinas locais ou remotas.  

O comando Secure Copy Protocol (SCP) é uma ferramenta fundamental para quem usa Linux. Afinal, é útil para transferir arquivos de forma segura entre máquinas locais e remotas.  

Basicamente, ele permite copiar arquivos de um localhost para um servidor remoto e vice-versa, utilizando o protocolo Secure Shell (SSH). É muito usado por administradores de sistema e usuários avançados para movimentar dados de maneira eficiente e criptografada. 

Neste artigo, vamos explorar detalhadamente como utilizar o comando SCP no Linux e como transferir arquivos entre máquinas. Confira também algumas opções para otimizar as suas operações. 

Navegue pelo índice

    O que é o comando SCP? 

    É um utilitário que permite a transferência de arquivos entre duas máquinas (local ou remota) de forma segura, utilizando o SSH.  

    A principal vantagem do SCP sobre outras ferramentas de cópia de arquivos, como File Transfer Protocol (FTP) ou Hypertext Transfer Protocol (HTTP), é a criptografia, que protege os dados enquanto são transmitidos. Por isso, ele é uma escolha excelente para movimentar informações sensíveis ou confidenciais. 

    Além disso, pode ser usado em casos como: 

    • Transferências simples, como cópia de um arquivo único. 
    • Operações mais complexas, como a transferência de diretórios inteiros, com suporte a autenticação baseada em chave SSH ou com senha. 

    O SCP faz parte dos principais comandos Linux voltados para a administração de servidores e sistemas. Ele está disponível na maioria das distribuições, como Ubuntu, Debian e Fedora, entre outras. 

    Qual é a sintaxe do comando SCP Linux? 

    A sintaxe básica segue o formato: 

    scp [opções] fonte destino 

    Em que: 

    • fonte: éo caminho para o arquivo que você deseja transferir. Pode ser local ou remoto. 
    • destino:éo local para onde o arquivo será copiado. Pode ser em outra máquina ou no mesmo sistema. 

    Alguns exemplos típicos incluem copiar arquivos entre o localhost e um servidor remoto ou entre dois servidores diferentes.  

    A simplicidade e flexibilidade da sintaxe o tornam ideal para diversos tipos de operações de transferência de arquivos

    Como copiar arquivos com o comando SCP Linux? 

    Existem diferentes cenários em que você pode fazer isso. Vamos explorar cada um desses casos nas linhas a seguir. 

    Arquivo local para um ambiente remoto 

    Uma das funcionalidades mais comuns do SCP é copiar arquivos do seu localhost (ou seja, a sua máquina local) para um servidor remoto.  

    Para isso, você precisa conhecer o endereço IP ou o nome de domínio da máquina remota, bem como as credenciais de autenticação

    Exemplo de comando para copiar um arquivo do localhost para um local remoto: 

    scp /caminho/do/arquivo usuario@servidor_remoto:/caminho/de/destino 

    Por exemplo, se você quiser enviar um arquivo chamado documento.txt do seu localhost para o diretório /home/usuario/ em um servidor remoto com o endereço 192.168.1.100, o comando seria: 

    scp documento.txt usuario@192.168.1.100:/home/usuario/ 

    Este comando pede a senha do servidor remoto para autenticação e, em seguida, inicia a transferência. 

    Arquivo remoto para o localhost 

    Você também pode usar o comando SCP Linux para copiar um arquivo de um servidor remoto para o seu localhost. Isso é útil quando se deseja baixar backups, logs ou qualquer outro tipo de dado armazenado em um servidor

    Exemplo de comando para copiar um arquivo de um servidor remoto para o localhost: 

    scp usuario@servidor_remoto:/caminho/do/arquivo /caminho/de/destino/no/localhost 

    Se você quiser baixar o arquivo backup.zip de um servidor remoto para o diretório /home/meuusuario/ no localhost, o comando seria: 

    scp usuario@192.168.1.100:/home/usuario/backup.zip /home/meuusuario/ 

    Arquivo remoto para outro local remoto 

    O SCP Linux também permite copiar arquivos diretamente de um servidor remoto para outro, sem que eles passem pelo localhost. Para isso, basta especificar ambos

    A seguir, temos um exemplo de comando: 

    scp usuario1@servidor1:/caminho/do/arquivo usuario2@servidor2:/caminho/de/destino 

    Por exemplo, se você precisar transferir um arquivo chamado dados.csv de um servidor remoto 192.168.1.100 para outro 192.168.1.101, o comando seria: 

    scp usuario@192.168.1.100:/home/usuario/dados.csv usuario@192.168.1.101:/home/usuario/ 

    Leia mais

    Quais são as opções avançadas do comando SCP? 

    O comando SCP conta com várias alternativas que ampliam a sua funcionalidade e flexibilidade. Aqui estão algumas das mais úteis. 

    Copiar pastas inteiras 

    Para copiar diretórios e todo o seu conteúdo, utilize a opção -r (recursiva): 

    scp -r /caminho/da/pasta usuario@servidor_remoto:/caminho/de/destino 

    Exemplo: 

    scp -r /home/meuusuario/documentos usuario@192.168.1.100:/home/usuario/backup 

    Especificar porta SSH 

    Se o servidor remoto utiliza uma porta SSH diferente da padrão (22), use a opção -P para especificá-la: 

    scp -P 2222 arquivo.txt usuario@192.168.1.100:/home/usuario/ 

    Autenticação por chave SSH 

    Caso use chaves SSH para autenticação em vez de senha, você pode especificá-la com a opção -i: 

    scp -i /caminho/para/sua_chave.pem arquivo.txt usuario@192.168.1.100:/home/usuario/ 

    Limitar a largura de banda 

    Para não sobrecarregar a sua rede durante a transferência, use a opção -l para definir a taxa de transferência em kilobits por segundo: 

    scp -l 1000 arquivo.txt usuario@192.168.1.100:/home/usuario/ 

    Habilitar compressão 

    Já para otimizar a transferência de arquivos grandes, especialmente em conexões lentas, a opção -C ativa a compressão dos dados: 

    scp -C arquivo_grande.tar.gz usuario@192.168.1.100:/home/usuario/ 

    Como usar SCP com senha no Linux? 

    Em muitos cenários, especialmente quando a chave SSH não estiver configurada, o comando SCP solicitará a senha do usuário no servidor remoto para autenticação.  

    Por exemplo: 

    scp arquivo.txt usuario@192.168.1.100:/home/usuario/ 

    Quando o comando for executado, será solicitado a inserção da senha do usuário “usuario” no servidor 192.168.1.100. Essa é uma forma comum de autenticação quando as chaves SSH não são usadas. 

    A imagem mostra um homem com cara de pensativo, sentado no que parece ser uma área com servidores. Ele olha atentamente para a tela do notebook, possivelmente analisando algumas linhas de comando SCP do Linux. 

    O comando SCP apresenta várias possibilidades para os usuários de Linux. 

    Conclusão 

    Como vimos, o comando SCP é essencial para qualquer administrador ou usuário de sistema Linux que precisa transferir arquivos de forma segura entre máquinas locais e remotas. Ele se baseia no protocolo SSH, garantindo criptografia e proteção dos dados

    Além disso, essa é uma solução flexível,com várias opções avançadas. Entre elas, temos a transferência de diretórios inteiros, autenticação por chave SSH, compressão de arquivos e definição de limites de largura de banda. 

    Independentemente se você usa Ubuntu ou outras distribuições, ele é indispensável para copiar arquivos entre máquinas com segurança.  

    Agora que você conhece os principais comandos e opções, pode aplicar o SCP Linux em suas tarefas diárias de gerenciamento de servidores e sistemas! 

    O autor

    Rodrigo Cardoso (Pokemaobr)

    Conhecido como Poke, é Streamer (Live "Coder") na Twitch, Web Developer e apresentador do talk show "The Velopers". Com bacharelado em Matemática e MBA em SOA, Poke atua como desenvolvedor e organizador de eventos de TI. É evangelista PHPSP e criador do PokePHP, focando em disseminar conteúdos técnicos e humor para a comunidade de desenvolvedores. Nas horas vagas, ele adora se conectar com a comunidade e compartilhar seu conhecimento de maneira divertida e informativa.

    Veja outros conteúdos desse autor