Qual é a diferença entre SCP e SFTP?

162

Normalmente, eu uso o scpcomando para transferir arquivos em * nixes.

Qual é a diferença entre SFTP e SCP? Os dois não trabalham com SSH?

n
fonte

Respostas:

98

Em poucas palavras, o SCP pode ser usado apenas para transferir arquivos e não é interativo (ou seja, tudo precisa ser especificado na linha de comando). O SFTP é mais elaborado e permite que comandos interativos façam coisas como criar diretórios, excluir diretórios e arquivos (todos sujeitos a permissões do sistema, é claro), etc.

Alex
fonte
34
Em relação à interatividade: A diferença que você descreve refere-se a clientes SFTP / SCP específicos, conforme implementados no OpenSSH. Não é nada sobre os próprios protocolos. É perfeitamente possível implementar um cliente SCP interativo ou um cliente SFTP não interativo.
Martin Prikryl
4
Mais uma coisa: o scp não funciona se o servidor permitir apenas o acesso SFTP através da linha ForceCommand internal-sftp. Eu acho que PermitTTY notambém evita o acesso scp, mas permite o acesso sftp, embora eu pudesse digitar minha senha incorretamente toda vez que tentei. Mas essas duas coisas não devem impedir o sftp. Fonte: experiência pessoal.
Ecube 10/10
Posso assumir que qualquer servidor SFTP também é capaz de aceitar transferências SCP?
Gus
@ gus não, veja o comentário de ecube
Pere
104

Da Wikipedia :

Comparado ao protocolo SCP anterior, que permite apenas transferências de arquivos, o protocolo SFTP permite uma série de operações em arquivos remotos - é mais como um protocolo de sistema de arquivos remoto. Os recursos extras de um cliente SFTP em comparação com um cliente SCP incluem a retomada de transferências interrompidas, listagens de diretório e remoção remota de arquivos. [1] Por esses motivos, é relativamente simples implementar um cliente SFTP da GUI em comparação com um cliente SCP da GUI.

e

Embora o SCP e o SFTP utilizem a mesma criptografia SSH durante a transferência de arquivos com o mesmo nível geral de sobrecarga, o SCP geralmente é muito mais rápido que o SFTP na transferência de arquivos, especialmente em redes de alta latência. Isso acontece porque o SCP implementa um algoritmo de transferência mais eficiente, que não exige a espera de confirmações de pacotes. Isso leva a uma velocidade mais rápida, mas ocorre às custas de não poder interromper uma transferência; portanto, diferentemente do SFTP, a transferência SCP não pode ser cancelada sem o término da sessão.

Jarvin
fonte
18
"O SCP geralmente é muito mais rápido que o SFTP na transferência de arquivos."
Micah Bolen #
3
"Mas vem às custas de não poder interromper uma transferência". Essa é uma troca muito importante.
aaaaaa
aaaaaa, "sem encerrar a sessão", o que não é muito importante se toda a sessão for para copiar o arquivo. Se você estiver copiando muitos arquivos, o cliente também poderá aguardar a conclusão de uma cópia de arquivo individual.
Victor Sergienko
9

De uma perspectiva puramente de linha de comando:

  • O scp não possui um modo interativo nem pode ler scripts de comando, o que significa que tudo deve ser escrito na linha de comando.
  • O sftp tem um modo interativo e pode ler comandos de um arquivo.

Outra diferença importante entre os 2 comandos é que o sftp não pode colocar um arquivo local em um local remoto usando uma única linha de comando , embora possa obter um arquivo remoto, enquanto o scp pode fazer as duas coisas .

sftp obter arquivo remoto

sftp user@host:/path/to/remote.file [/path/to/local.file]

scp obter arquivo remoto

scp user@host:/path/to/remote.file [/path/to/local.file]

scp colocar arquivo remoto

scp /path/to/local.file user@host:[/path/to/remote.file]
Stéphane Ch.
fonte
2
Colocando um arquivo:sftp {user}@{host}:{remote_dir} <<< $'put {local_file_path}'
gdw2 18/04
3

SSH ( S ecure SH ell) é um protocolo de rede de criptografia para permitir a autenticação remoto e outros serviços de rede para operar de forma segura através de uma rede não segura.

Diferenças: o SFTP funciona no modo interativo (sessão) e o SCP funciona no não interativo. Usando o SFTP, podemos acessar o sistema de arquivos remoto, isto é, criar, excluir e listar arquivos.

Semelhanças: 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 suporta a gestão de arquivo de entre hospedeiros em uma rede. Ambos usam SSH.

Mais

Premraj
fonte
2

A maioria das diferenças dos dois protocolos já foi dita em outras respostas, e mais detalhadamente em https://unix.stackexchange.com/q/8707/19088

Outra diferença, de acordo com a documentação do curl , é que o protocolo SCP não é muito portátil e geralmente funciona apenas entre sistemas Unix.

A propósito, o curl implementa ambos os protocolos e, ao contrário da implementação padrão do cliente OpenSSH SFTP, é não interativo para SFTP e SCP.

E observe que também existe o protocolo FISH , que permite transferir arquivos via SSH sem a necessidade de SCP ou SFTP. Até onde eu sei, o FISH não é muito popular, atualmente implementado em apenas alguns gerenciadores de arquivos ( Midnight Commander e alguns baseados no KDE) e no Lftp .

Pere
fonte
2
"Outra diferença, de acordo com a documentação do curl, é que o protocolo SCP não é muito portátil e geralmente funciona apenas entre sistemas Unix." A ironia desta parte da sua resposta é que a GUI SCP mais popular se chama WinSCP e - você adivinhou - é um programa do Windows.
26518 Brett
1
@brett o cliente mais popular é provavelmente o scp do OpenSSH, eu diria que é altamente implementado. O WinSCP é um cliente SCP / SFTP / etc, mas atualmente é usado principalmente como cliente (S) FTP: "Em junho de 2003, a versão 3.0 foi lançada, introduzindo suporte para a alternativa ao SCP, o protocolo SFTP. Com o tempo, evoluiu da alternativa protocolo primário. Apesar disso, o nome bem estabelecido "WinSCP" foi preservado ". (da História do WinSCP: winscp.net/eng/docs/project_history)
Pere