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

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

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

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

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

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

а также

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

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

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

Другим важным различием между двумя командами является то, что 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 put удаленный файл

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

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

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

Сходства: как SCP ( S ecure C opy P rotocol), так и SFTP ( S SH F ile T ransfer P rotocol) – это сетевые протоколы, которые поддерживают управление файлами между хостами в сети. Оба используют SSH.

Больше

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

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

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

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

  • Как изменить количество столбцов в окне шпаклевки на большее, чем ширина экрана?
  • Ssh попытки атаки на OS X 10.10 - должен ли я беспокоиться / отвечать?
  • Как туннелировать локальный порт на удаленном сервере
  • Проблема с совместно используемыми ключами ssh
  • SSH как прокси-сервер socks через несколько хостов
  • Ssh - нет маршрута к хосту
  • Если пароль менее логин не рекомендуется для коммерческих сайтов, что было бы лучшим вариантом для этого без взаимодействия?
  • SSH-сервер не может быть подключен, когда VPN включен
  • Используя команду history с помощью ssh и получать выходные данные с отметками времени
  • Как подключить два локально связанных компьютера к WIFI с помощью адресации IPv4?
  • SSH: подлинность хоста <host> не может быть установлена
  • Interesting Posts
    Давайте будем гением компьютера.