SCP vs SFTP: qual você deve usar para transferência de arquivos
SCP (Secure Copy) e SFTP (Secure File Transfer Program) são alternativas para FTP (File Transfer Protocol), que é útil para transferências de arquivos não programadas. Todos os três podem ajudar a mover arquivos de um local para outro em um meio de rede. No entanto, o FTP envia dados em texto simples, enquanto os outros dois usam o SSH File Transfer Protocol (SFTP) para comunicação.
O que é SCP?
SCP é um programa de transferência de arquivos não interativo que apareceu pela primeira vez no 4.2 BSD. Historicamente, ele usava rlogin e SSH para transmitir arquivos entre dois computadores. Isso o tornou sujeito a explorações remotas, pois executava comandos no host remoto para iniciar uma transferência de dados.
As transferências de arquivos e diretórios no SCP podem ser entre uma máquina local e um host remoto ou dois hosts remotos. Isso permite que seja mais flexível ao trabalhar com diferentes distribuições do tipo UNIX.
SCP também pode ser usado com um caractere curinga para auxiliar na transferência de vários arquivos com base em critérios de sequência parcial. Semelhante às transferências diretas, esses curingas também podem ser usados para enviar e receber arquivos e diretórios.
O que é SFTP?
Ao contrário do SCP, o SFTP é um programa de transferência de arquivos que funciona de forma semelhante a um prompt de FTP e a um shell remoto. Ele fornece um prompt interativo que permite navegar no sistema de arquivos de uma máquina remota e manipular seu conteúdo.
O SFTP também usa vários recursos SSH, como compactação ou autenticação de chave pública, para conectar-se a hosts e entrar no modo interativo. Isso o torna um navegador de sistema de arquivos remoto robusto para máquinas UNIX sem cabeça.
O SFTP também pode ser usado para recuperar arquivos automaticamente se você usar um método de autenticação não interativo; caso contrário, ele os recuperará após uma autenticação interativa bem-sucedida.
SCP x SFTP: o que é melhor?
Existem algumas semelhanças entre os dois programas de transferência de arquivos. Ambos usam a porta TCP 22 e rodam em SSH, tornando-os iguais em termos de segurança. Além disso, ambos os programas também suportam a transferência de arquivos grandes, pois não possuem limites de tamanho de arquivo. As principais diferenças entre SCP e SFTP, portanto, podem ser vistas em suas especificações e funções.
Funcionalidade
Basicamente, o objetivo básico do SCP é copiar dados com segurança entre duas máquinas. Isso fica evidente na sintaxe básica do programa, que exige que você forneça uma origem e um destino para cada transferência de arquivo. Isso torna mais fácil trabalhar com transferências simples de arquivos únicas.
Enquanto isso, SFTP é um cliente de transferência de arquivos mais completo que fornece um navegador de arquivos junto com downloads de vários arquivos. Esses recursos tornam o SFTP ideal para usuários que precisam transferir arquivos constantemente de e para um host remoto.
Vencedor : SFTP
Velocidade
Como tanto o SCP quanto o SFTP usam o protocolo SFTP para criptografar e transportar arquivos, os dois programas compartilham a mesma velocidade de transferência bruta ao enviar ou receber dados. No entanto, iniciar essa transferência é uma história diferente.
O SCP costuma ser mais rápido em atingir a velocidade máxima de transferência bruta de uma conexão, enquanto o SFTP fica para trás enquanto tenta “aumentar” sua velocidade. Além disso, iniciar uma transferência SFTP também exige que você acesse um prompt e use comandos FTP para fazer upload e download de arquivos.
Vencedor : SCP
Segurança
Tanto o SCP quanto o SFTP dependem do protocolo SSH para sua camada de transporte base. Isso permite que eles transfiram dados com segurança através de uma rede usando criptografia de nível militar.
Apesar disso, o SFTP supera o SCP fornecendo o sinalizador -f que permite gravar imediatamente quaisquer dados transferidos no disco. Além disso, sua interface de linha de comando também fornece vários utilitários que permitem atualizar os bits de permissão de um arquivo.
Vencedor : SFTP
Tamanho do arquivo
A maioria das versões modernas de SCP e SFTP no Linux são binários de 64 bits. Isso significa que ambos os utilitários podem, hipoteticamente, suportar até 16 Exabytes de dados arbitrários, desde que o sistema de arquivos subjacente também os suporte.
Dito isto, o SCP ainda pode apresentar alguns problemas com arquivos grandes, especialmente quando se trabalha com máquinas mais antigas do tipo UNIX. Isso se deve principalmente aos sistemas que executam versões de 32 bits do SCP, que só podem lidar com até 4 Gigabytes de arquivos por vez.
Vencedor : SFTP
Linhas de comando
SCP não é interativo e não pode ler scripts de comando, então tudo deve ser escrito na linha de comando. No entanto, isso também permite que ele seja executado como parte de scripts de shell maiores, o que pode ser útil ao automatizar tarefas de administração do sistema.
O SFTP, por outro lado, é interativo, portanto pode ler comandos de arquivos. Embora isso também possa ser útil para automação, pode ser mais complicado, pois requer um conjunto de comandos que são diferentes de um script de shell normal.
Vencedor : SCP
Retomando transferências de arquivos
SCP não suporta esta função completamente. Isso torna o programa propenso a repetir transferências inteiras em conexões irregulares e intermitentes. Enquanto isso, o SFTP oferece suporte tanto no prompt CLI com seu -a
sinalizador quanto por meio de seu cliente de linha de comando usando os subcomandos reget
e .reput
Vencedor : SFTP
Qual você deve usar para transferência de arquivos: SCP ou SFTP?
Embora tenham semelhanças e diferenças, dizer que um é melhor que o outro não seria justo. Ambos transferem arquivos e possuem recursos de segurança semelhantes aos executados em SSH. Em última análise, o utilitário escolhido será baseado no que for melhor para os requisitos do seu ambiente.
Usar SCP para
- Quando você deseja transferir um único arquivo ou diretório entre dois hosts remotos.
- Quando você deseja automatizar a transferência de dados pela rede.
- Quando você está trabalhando com sistemas herdados do tipo UNIX sem suporte a SFTP.
Usar SFTP para
- Quando você transfere vários arquivos em vários diretórios de um único host remoto.
- Quando você deseja interagir com o sistema de arquivos de um host remoto sem abrir uma nova sessão SSH.
- Quando você deseja um programa de transferência de arquivos confiável que possa funcionar mesmo em condições de rede intermitentes.
Com isso em mente, o envio de dados entre dois sistemas é apenas o primeiro passo para entender como os computadores se comunicam em uma rede. Aprenda como sua máquina Linux sabe para onde enviar seus dados consultando nosso guia prático de resolução de DNS usando dig .
Crédito da imagem: Alejandro Escamilla via Unsplash . Todas as alterações e capturas de tela de Ramces Red.
Deixe um comentário