it-swarm-ru.tech

В чем разница между SCP и SFTP?

Обычно я использую команду scp для передачи файлов на * nixes.

В чем разница между SFTP и SCP? Разве они оба не работают по SSH?

155
nos

Короче говоря, SCP может использоваться только для передачи файлов, и он не является интерактивным (то есть все должно быть указано в командной строке). SFTP более сложный и позволяет интерактивным командам выполнять такие действия, как создание каталогов, удаление каталогов и файлов (конечно, с учетом системных разрешений) и т.д.

97
Alex

Из Википедия :

По сравнению с более ранним протоколом SCP, который допускает только передачу файлов, протокол SFTP позволяет выполнять ряд операций с удаленными файлами - он больше похож на протокол удаленной файловой системы. Дополнительные возможности клиента SFTP по сравнению с клиентом SCP включают возобновление прерванных передач, списки каталогов и удаленное удаление файлов. [1] По этим причинам относительно просто реализовать клиент SFTP с графическим интерфейсом по сравнению с клиентом SCP с графическим интерфейсом.

а также

Хотя и SCP, и SFTP используют одинаковое шифрование SSH при передаче файлов с одинаковым общим уровнем служебных данных, SCP обычно намного быстрее, чем SFTP при передаче файлов, особенно в сетях с высокой задержкой. Это происходит потому, что SCP реализует более эффективный алгоритм передачи, который не требует ожидания подтверждения пакета. Это приводит к более высокой скорости, но происходит за счет невозможности прервать передачу, поэтому, в отличие от SFTP, передача SCP не может быть отменена без завершения сеанса.

101
Jarvin

С точки зрения командной строки:

  • scp не имеет интерактивного режима и не может читать командные сценарии, это означает, что все должно быть записано в командной строке.
  • sftp имеет интерактивный режим и может читать команды из файла.

Другое важное различие между этими 2 командами заключается в том, что sftp не может поместить локальный файл в удаленное местоположение с помощью одной командной строки , хотя он может получить удаленный файл, в то время как scp может сделать оба .

sftp получить удаленный файл

sftp [email protected]:/path/to/remote.file [/path/to/local.file]

scp получить удаленный файл

scp [email protected]:/path/to/remote.file [/path/to/local.file]

scp положил удаленный файл

scp /path/to/local.file [email protected]:[/path/to/remote.file]
8
Stéphane Ch.

SSH(SecureSHell) - это криптографический сетевой протокол, позволяющий удаленному входу в систему и другим сетевым службам безопасно работать через незащищенный сеть.

Отличия: SFTP работает в интерактивном режиме (сеанс), а SCP работает в неинтерактивном. Используя SFTP, мы можем получить доступ к удаленной файловой системе, т. Е. Создавать, удалять и перечислять файлы.

Сходства: Обе SCP (SecureCopyProtocol) иSFTP(SSHFileTransferProtocol) - сетевые протоколы, которые поддерживают управление файлами между хостами в сети. Оба используют SSH.

Больше

2
Premraj

Большинство различий между двумя протоколами уже было сказано в других ответах, и более подробно в https://unix.stackexchange.com/q/8707/19088

Другое отличие, согласно документации curl , заключается в том, что протокол SCP не очень переносим и обычно работает только между системами Unix.

Кстати, curl реализует оба протокола и, в отличие от реализации SFTP-клиента OpenSSH по умолчанию, неинтерактивен для SFTP и SCP.

И обратите внимание, что существует также протокол FISH , который позволяет передавать файлы через SSH без необходимости использования SCP или SFTP. Насколько я знаю, FISH не очень популярен, в настоящее время он реализован всего в нескольких файловых менеджерах ( Midnight Commander и в некоторых на KDE) и Lftp .

1
Pere