Já precisou enviar arquivos da sua máquina para um servidor remoto utilizando a linha de comando do linux e não conseguiu ?
Os comandos scp e sftp ajudam nesse trabalho para transferir arquivos via ssh do seu computador para um servidor com total segurança.
Neste guia prático, você vai aprender como instalar, entender a sintaxe e dominar o uso dessas duas ferramentas no linux para copiar diretórios e arquivos entre computadores na rede.
Comando scp
O comando scp (Secure Copy Protocol) é um utilitário de linha de comando que permite copiar arquivos e diretórios de forma direta e criptografada entre dois hosts na rede.
Ele é ideal para transferências rápidas de arquivos, pois executa a cópia e encerra a conexão logo em seguida sem exigir uma sessão interativa do shell.
Para instala-lo em distros linux baseadas no Debian ou Ubuntu, utilize o apt para instalar o pacote openssh-client:
apt update
apt install openssh-client -yNas distros Red Hat, AlmaLinux e Rocky Linux, instale o pacote openssh-clients para ter disponível o programa scp:
dnf install openssh-clients -yPara utilizar o comando scp é necessário entender sua sintaxe, que é:
scp [opções] “origem” “destino”Explicação:
scp – O programa que copia os arquivos entre computadores em uma rede.
opções – São as opções que alteram o que ele faz por padrão.
origem – Arquivo(s) ou diretório(s) a ser copiado(s).
destino – Local para onde os arquivos e diretórios serão copiados.
Para aprender na prática como utilizar o comando scp para transferir arquivos via ssh a seguir tem alguns exemplos práticos para o melhor entendimento.
IMPORTANTE
Verifique se a conta de usuário usada para autenticação via SSH tem permissão para acessar o que será copiado quando a operação for download dos arquivos e se tem permissão de gravar no destino quando a operação for upload.
Enviando arquivos da máquina cliente para o servidor
Suponha que você alterou o arquivo de configuração de um site em wordpress (config.php) no seu computador e precisa enviá-lo para a pasta do servidor da sua hospedagem.
scp config.php [email protected]:/var/www/html/Será solicitada autenticação do usuário (no exemplo: dlncloud) do computador remoto (122.200.201.2).
Em seguida o comando scp pega o arquivo “config.php” do diretório atual da sua máquina e o envia diretamente para a pasta “/var/www/html/” dentro do servidor com o IP “122.200.201.2”, se autenticando com a conta de usuário chamada “dlncloud”.
Para enviar mais de um arquivo informe a localização completa de cada arquivo que será feito o upload, por exemplo:
scp app2.py conect-bd.py [email protected]:/srv/app2/bin
Substitua no comando “dlncloud” pela conta de usuário cadastrada no servidor.
No exemplo, são enviados os arquivos “app2.py” e “conect-bd.py” da máquina que está utilizando para o diretório “/srv/app2/bin” do host “122.200.201.2”.
Baixando arquivo do servidor para máquina cliente
Para baixar um arquivo, por exemplo, um backup do site em wordpress contido no arquivo “/backups/site.tar.gz” de um servidor VPS (122.200.201.2) execute o seguinte comando:
scp [email protected]:/backups/site.tar.gz /srv/site
No exemplo, a origem agora é a máquina remota (122.200.201.2). O arquivo especificado no caminho remoto será baixado diretamente para a localização “/srv/site” (diretório de destino).
Copiando todo conteúdo de uma pasta
Se você precisa enviar uma pasta inteira de projetos (Exemplo: ./meu-projeto) para o diretório “/opt/” do servidor (122.200.201.2) que recebe conexões SSH na porta “2222”, execute o comando:
scp -P 2222 -r ./meu-projeto [email protected]:/opt/A opção “-P” faz o scp usar uma porta personalizada, por segurança, alguns servidores alteram a porta padrão do SSH, no exemplo é a porta “2222”.
Enquanto a opção “-r” garante que a pasta (./meu-projeto) seja copiada recursivamente, ou seja, o diretório e todo seu conteúdo são copiados.
Para aprender mais sobre o comando scp recomendo a leitura online do seu manual.
Comando sftp para transferir arquivos via SSH
O comando sftp (SSH File Transfer Protocol) é uma ferramenta interativa que pode ser utilizada para transferência de arquivos.
O programa sftp cria uma sessão contínua na qual você pode navegar pelos diretórios remotos e em seguida transferir arquivos via SSH.
Assim como o SCP, a comando SFTP faz parte da suíte padrão do OpenSSH. Para instala-lo no debian ou ubuntu execute o comando:
apt update
apt install openssh-client -yJá nas distribuições linux RedHat, AlmaLinux e Rocky Linux o comando para instalar o comando sftp é:
dnf install openssh-clients -yPara iniciar uma sessão interativa via SFTP, utilize a seguinte sintaxe:
sftp usuario@servidorPor exemplo, para acessar o servidor “122.200.201.2” se autenticando com o usuário “dlncloud” o comando completo fica assim:
sftp [email protected]Após a autenticação, você receberá o prompt do comando sftp, algo assim “sftp>”.
Para aprender a transferir arquivos via SSH utilizando o comando sftp a seguir tem alguns exemplos práticos.
Download de arquivos do servidor para seu computador
Para baixar um arquivo de outro computador para o seu utilize o “get” do comando sftp.
Exemplo, suponha que você precisa investigar erros do sistema baixando o arquivo “/var/log/error.log” da máquina remota, execute os seguintes comandos no prompt do sftp:
sftp> cd /var/log
sftp> get error.log
O comando “cd /var/log” acessa a localização “/var/log” do servidor remoto e o segundo comando “get error.log” faz o download do arquivo “error.log” para o diretório corrente da sua máquina, a pasta que estava acessando antes de se conectar ao servidor.
Upload de arquivos da sua máquina para um servidor
Já para enviar arquivos utilize o “put” do comando sftp, por exemplo, suponha que você gerou um novo arquivo “.css” chamado “rodape.css” e precisa enviar para a pasta “/var/www/html/site/css” do servidor.
Primeiro acesse a pasta “/var/www/html/site/css” do servidor remoto.
sftp> cd /var/www/html/site/css/Ainda no prompt do sftp, acesse a pasta da sua máquina que contém o arquivo, no exemplo, está na localização completa “/home/dlncloud/projetos/site/css”:
sftp> lcd /home/dlncloud/projetos/site/cssE por fim execute o comando “put” para fazer upload do arquivo (no exemplo: rodape.css):
sftp> put rodape.css
O segundo exemplo, copie o diretório “/home/dlncloud/projetos/site/css” e tudo que tem dentro no cliente (sua máquina) para o diretório “/var/www/html/site/” no servidor.
sftp> put -r /home/dlncloud/projetos/site/css/ /var/www/html/site/A opção “-r” (recursivo) do comando “put” no sftp copia a pasta e todo seu conteúdo para o destino.
Quer se aprofundar seus conhecimentos sobre o protocolo SFTP, aprendendo mais comandos interativos ? Confira o nosso Guia Prático sobre o Comando SFTP para dominar essa ferramenta.
Conclusão
Aprender a transferir arquivos via ssh é fundamental no dia-dia de quem trabalha com servidores linux. Com os comandos scp e sftp você consegue realizar cópias rápidas entre máquinas na rede, tudo criptografado pelo ssh.
Depois de dominar esses comandos, você poderá enviar scripts, configurações, backups e outros arquivos entre computadores da rede com muito mais segurança e praticidade.
Se você está começando a estudar linux, também vale a pena conhecer outros comandos, lendo nosso guia completo de Comandos Linux: guia completo para ampliar seu conhecimento.
Ficou com alguma dúvida sobre os exemplos ou tem alguma sugestão ? Deixe seu comentário abaixo!
Perguntas Frequentes (FAQ) sobre o transferir arquivos via ssh
Como posso transferir arquivos via ssh sem precisar digitar a senha toda vez ?
Você pode configurar a autenticação por chaves SSH (chave pública e privada), sem uso de senha para proteger a chave. Uma vez configurada a chave no arquivo authorized_keys do servidor, você conseguirá transferir arquivos de forma automática.
É possível retomar uma transferência interrompida com o comando SFTP ?
O comando sftp suporta o reinício de downloads ou uploads utilizando comandos específicos (como reget ou reput) dentro de sua sessão interativa.
Qual é a diferença entre scp e sftp ?
O comando scp é direcionado para cópias diretas de arquivos e diretórios. Já o comando sftp oferece uma sessão interativa na qual você pode navegar pelos diretórios remotos, enviar e baixar arquivos e executar diversas operações.
Posso retomar uma transferência interrompida com o comando scp ?
O SCP não suporta o reinício de transferências interrompidas.

