Apr 16, 2025
Andrei L.
5min de leitura
Transferir arquivos em segurança é primordial. Especialmente quando se usa uma hospedagem de VPS. Felizmente, isso pode ser feito facilmente usando um Comando SCP. Neste artigo, você vai aprender a como usar comandos SCP e como eles podem trabalhar para o sucesso do seu projeto.

Baseado em Berkeley Software Distribution (BSD) Remote Copy Protocol, o SCP (Secure Copy) é um protocolo de rede para transferências de arquivos.
Com ele, você pode transferir arquivos de forma fácil e segura entre um local remoto e um host ou entre dois locais remotos.
Desenvolvedores full-stack frequentemente usam um comando SCP para funções de autenticação e encriptação sem precisar usar softwares externos, como o Github.
É uma maneira bem acessível de prevenir que seus dados fiquem expostos para outros usuários ao mesmo tempo em que preserva a confidencialidade.
Na essência, o SCP é uma mistura de RCP e SSH (Secure Shell). Ele se baseia no primeiro para realizar ações de cópia. Enquanto que, no segundo, ele usa toda a parte de encriptação de informação para autenticar sistemas remotos.
Diferentemente do Rsync, tudo o que você precisa para usar um comando SCP com sucesso é um nome de usuário e senha. Ou, ainda, uma frase que serve como senha para os sistemas envolvidos na transferência. Ele agiliza o processo, pois você não precisa fazer login em nenhum deles.
Um comando SCP básico se parece com isso:
scp [other options] [source username@IP]:/[directory and file name] [destination username@IP]:/[destination directory]
Pode parecer complicado num primeiro momento. Mas vamos explicar cada trecho dele para você.
Neste exemplo de comando acima, estamos fazendo uma transferência entre dois servidores de VPS.
Em um cenário mais claro, a situação se pareceria com algo como:
scp -p root@162.168.1.1:/media/scp.png edward@162.168.1.2:/desktop/destination
Viu como é simples? Se você está copiando para ou de uma máquina local, você não precisa do endereço de IP, do destino ou do caminho da fonte como /desktop/nome_da_pasta.
Vamos falar sobre outras opções que você pode usar para modificar o comando SCP. Existem 20 comuns deles que você pode usar tanto na forma de caractere único (-o) quanto no equivalente descritivo (-option).
As opções comuns mais usadas são:
Como o SCP usa encriptação SSH, você vai precisar de uma senha SSH para a transferência do arquivo acontecer.
Além disso, é necessário que você tenha permissão de leitura na máquina da qual você está prestes a copiar e garantir privilégios para a máquina que vai receber o arquivo transferido.
Para a autenticação e configuração da conexão, você vai ter que gerar um par de chaves SSH no terminal usando o seguinte comando:
ssh-keygen -t rsaVocê copia essa chave para o sistema remoto usando:
ssh-copy-id user@remote_machineAssim que tiver autenticado a chave na (s) máquina (s) remota (s), a chave pública será copiada e você estará pronto para começar as transferências.
Se você não se lembrar da (s) senha (s) raiz (es) de qualquer sistema, poderá fazer com que o cliente SSH selecione o arquivo a partir do qual a chave de identidade privada para a confirmação RSA é lida automaticamente.
Para a versão 2 do protocolo, o caminho de identidade padrão da chave do host é ~/.ssh/id_dsa, enquanto para a versão 1 do protocolo é ~/.ssh/id_rsa.
Então, você deve encontrar onde o backup das chaves públicas e privadas estão armazenadas, para que você possa usar o comando SSH para usá-las automaticamente.
Para o caminho /back-up/home/jack/.ssh, o comando a usar é este:
ssh -i /back-up/home/user/.ssh/id_dsa user@yourserver.servername.domain
Dica: Essa opção tem o valor padrão –overwrite [yes]. Então, a menos que você especifique a opção –overwrite no ou –overwrite ask no seu comando SCP, a operação vai sobrescrever os arquivos que têm nomes e locais idênticos sem qualquer aviso.
Se você está transferir arquivos gigantes, recomendamos que use uma sessão tmux o execute o comando dentro de uma tela diferente.
Além disso, você também deve usar a opção -v para transferências maiores. Ela vai forçar o SCP a mostrar e depurar as conexões, as autenticações ou os problemas de configuração.
A melhor parte do SCP é que ele dá a você a possibilidade de transferir arquivos entre dois hosts. Ou entre um host e uma máquina local. Vamos ver como o comando deve ser usado para cada tipo de transferência.
Vamos copiar um arquivo local scp.zip para o usuário de uma máquina remota chamada root. O nome do usuário é seguido pelo endereço de IP do servidor.
Exemplo:
scp /users/Edward/desktop/scp.zip root@191.162.0.2:/writing/article
Se você não tem uma confirmação automática do cliente SSH, você vai ser solicitado para inserir a senha da máquina local do usuário e versá uma métrica de progresso. Seria algo como isso:
root@191.162.0.2’s password: novel3.zip 100% 0 0.0KB/s 00:00
Mas, vamos dizer que a máquina remota está configurada para responder às conexões SSH e uma porta que não seja a 22. Nesse caso, você deve especificar a porta usando uma opção.
scp -P 2322 /users/Edward/desktop/scp.zip root@191.162.0.2:/writing/article
Se você quiser mudar o nome do arquivo durante a operação da transferência, então o seu comando vai se parecer com isso (se a sua porta não for a padrão, apenas adicione -P e o número da porta):
scp /users/Edward/desktop/scp.zip root@191.162.0.2:/writing/article/howtoscp.zip
Se você quer copiar um diretório que tem mais arquivos e/ou mais subdiretórios, use a linha de comando -r que mostramos mais cedo no artigo.
scp -r /users/Edward/desktop root@191.162.0.2:/writing/article
Neste processo, a fonte e o alvo do comando ficam reservados. Então, isso deve refletir na sua sintaxe. Desta vez, estamos tentando copiar scp.zip do mesmo host remoto para a nossa máquina local.
scp root@191.162.0.2:/writing/articles/SCP.zip Users/Edward/Desktop
Novamente, isso deve pedir um login SSH, onde você precisa colocar sua senha de acesso. A menos que a autenticação tenha sido desabilitada por privilégios sudo. Ou que você forçou o cliente SSH a usar uma chave privada na sua máquina.
Para copiar arquivos de um host remoto para outro, você vai ter que inserir senhas para ambas as contas depois de executar este comando no seu terminal.
Exemplo:
scp root@191.162.0.2:/writing/article/scp.zip edward@11.10.0.1:/publishing
O comando acima copia a fonte do arquivo /writing/article/scp.zip do primeiro host para o segundo. Para copiar pastas, apenas adicione a opção -r e especifique o caminho da pasta ao invés do arquivo dentro dela, como fizemos antes.
Em circunstâncias normais, o arquivo vai direto do primeiro host remoto para o segundo. Porém, se você quiser redirecionar a operação através da sua máquina, é só adicionar a opção -3:
scp -3 root@191.162.0.2:/writing/article/scp.zip edward@11.10.0.1:/publishing
E é isso!

Neste artigo, você aprendeu a como transferir arquivos facilmente entre hosts locais e remotos usando um comando SCP. Isso é extremamente útil quando você está trabalhando com múltiplos servidores.
O protocolo da cópia de segurança faz com que seja mais fácil copiar informações com sucesso de um host remoto para outro sem precisar fazer login.
Além disso, esse método de transferência remota de arquivos encripta seus dados com um shell seguro, o que garante a confiabilidade da informação que está sendo transmitida.
Semua konten tutorial di website ini telah melalui peninjauan menyeluruh sesuai padrões editoriais e valores da Hostinger.
Comentários
September 17 2019
Parabéns pela clara explicação... para mim foi fundamental a clareza com que você expôs todos os passos e a potencialidade desse comando!... Obrigado e muita luz!...
January 21 2020
Muito bom o artigo, direto e fácil de entender, mas você pode poderia complementar com mais uma opção, o parâmetro '-l' , limit, que limita a taxa de transferência. Por exemplo, você tem um VPS funcionando, mas transferir um arquivo grande pode gerar gargalo no serviço. Com o 'limit', você demora mais tempo pra transferir o arquivo, mas reduz o impacto no desempenho.
January 28 2020
Valeu pela dica, Paulo!
March 20 2020
Excelente explicação, o modo que você abordou ficou muito claro para a compreensão, procurei na internet coisa sobre scp, mais nenhum com essa abordagem. Parabéns!
November 19 2020
Parabéns pelo conteúdo, eu não fazia ideia do que era e com uma breve lida já entendi do que se trata. Abraços.
November 23 2020
Nós que agradecemos a preferência, Henrique! Muito obrigado! :D
December 03 2020
Obrigado!
December 07 2020
De nada!
April 01 2021
Estou no Mac e fui fazer, mas, ele informa que não localiza o arquivo ou diretório local Verifiquei o caminho e o mesmo está correto.
April 16 2021
Olá Julio, entra em contato com o nosso time de Sucesso do Cliente que eles são feras e vão te ajudar com isso!
September 30 2021
Não ficou claro para mim o seguinte: eu tenho uma máquina windows e um servidor linux remoto e preciso transferir arquivos de um para o outro. SCP funciona com windows ? O acessa remoto à máquina linux eu faço pelo command do windows usando ssh server@ip, mas não estou conseguindo usar o scp.
October 01 2021
Olá, Luiz! O SCP funciona no Windows sim. Dá uma olhadinha se esse tópico aqui não vai te ajudar ?
February 28 2023
Olá existe alguma forma de não informar a senha no bash? Por exemplo para poder automatizar a tarefa e colocar no cron
March 10 2023
Olá, Fabio! Existe sim. Você pode usar chaves públicas sem uma senha. Basta você gerar sua chave com o comando ssh-keygen e copiá-la para o servidor remoto com o comando ssh-copy-id. Assim, você pode usar o SCP com a opção -i para especificar a chave a ser usada. Também dá para usar uma conta especial para o backup no sistema de destino, para não expor sua senha root ?
April 13 2023
Bom dia Não encontrei a opção -u, poderia exemplificar com funciona no Centos7
April 14 2023
Olá, Carlos! Dá uma olhada se este tutorial em vídeo não te ajuda! ?
July 27 2023
Bom dia! Eu tentei usar no linux o comando scp -r root@IP:/diretorio /Users/bruna/Contatos porém identifica que minha pasta do windows não existe, mesmo ela existindo
July 28 2023
Oi, Bruna! Que versão do Linux você tá usando?