Qual é a diferença entre o SCP e o SFTP?
Normalmente, utilizo o comando scp
para transferir ficheiros em *nixes.
Qual é a diferença entre SFTP e SCP? Será que ambos não trabalham em SSH?
Normalmente, utilizo o comando scp
para transferir ficheiros em *nixes.
Qual é a diferença entre SFTP e SCP? Será que ambos não trabalham em SSH?
A partir de Wikipedia :
Em comparação com o anterior protocolo SCP, que permite apenas transferências de ficheiros, o protocolo SFTP permite uma gama de operações em ficheiros remotos - é mais como um protocolo de sistema de ficheiros remoto. As capacidades extra de um cliente SFTP em comparação com um cliente SCP incluem o reinício de transferências interrompidas, listagens de directórios, e remoção remota de ficheiros. [1] Por estas razões, é relativamente simples implementar um cliente SFTP GUI em comparação com um cliente SCP GUI.
e
Embora tanto o SCP como o SFTP utilizem a mesma encriptação SSH durante a transferência de ficheiros com o mesmo nível geral de sobrecarga, o SCP é normalmente muito mais rápido que o SFTP na transferência de ficheiros, especialmente em redes de alta latência. Isto acontece porque o SCP implementa um algoritmo de transferência mais eficiente, um algoritmo que não requer esperar por confirmações de pacotes. Isto leva a uma velocidade mais rápida, mas vem à custa de não ser capaz de interromper uma transferência, por isso, ao contrário do SFTP, a transferência de SCP não pode ser cancelada sem terminar a sessão.
Em resumo, o SCP só pode ser utilizado para transferir ficheiros, e é não-interactivo (ou seja, tudo tem de ser especificado na linha de comando). O SFTP é mais elaborado, e permite comandos interactivos para fazer coisas como criar directórios, apagar directórios e ficheiros (todos sujeitos a permissões de sistema, claro), etc.
De uma perspectiva puramente de linha de comando :
Outra diferença importante entre os 2 comandos é que sftp* não pode colocar um ficheiro local num local remoto utilizando uma única linha de comando, embora possa obter ficheiro remoto, enquanto scp* pode fazer ambos.
sftp user@host:/path/to/remote.file [/path/to/local.file]
scp user@host:/path/to/remote.file [/path/to/local.file]
scp /path/to/local.file user@host:[/path/to/remote.file]
SSH ( S* ecure SH ell) é um protocolo de rede criptográfico para permitir o login remoto e outros serviços de rede para operar em segurança através de uma rede não segura.
Diferenças: SFTP funciona em modo interactivo (sessão) e SCP funciona em modo não-interactivo. Usando SFTP podemos aceder ao sistema de arquivo remoto, ou seja, criar, apagar, e listar ficheiros.
Similitudes: Ambos SCP( S* ecure C* opy P* rotocolo) e SFTP ( S* SH F* ile T* ransferência P* rotocolo) são protocolos de rede, que suportam a gestão de ficheiros entre anfitriões numa rede. Ambos utilizam SSH. mais
A maioria das diferenças dos dois protocolos já foram ditas noutras respostas, e mais verbosamente em https://unix.stackexchange.com/q/8707/19088
Outra diferença, de acordo com a documentação da ondulação , é que o protocolo SCP não é muito portátil e normalmente só funciona entre sistemas Unix.
A propósito, curl implementa ambos os protocolos e ao contrário da implementação padrão do cliente OpenSSH SFTP, é não-interactivo tanto para SFTP como para SCP.
E note que existe também o protocolo FISH , que permite transferir ficheiros via SSH sem a necessidade de SCP ou SFTP. Tanto quanto sei o FISH não é muito popular, actualmente implementado em apenas alguns gestores de ficheiros Midnight Commander e alguns que são baseados no KDE) e Lftp .