Каково различие между SFTP, SCP и протоколами РЫБЫ?

Я обычно использую Vim, но они - оба великие редакторы.

Обучение использовать vi было противно, но я прошел через него и учился любить его. Мои самые расстраивающие моменты были, когда клавиша Caps Lock шла. Вы могли попробовать gVim, но одним из самых больших преимуществ с vi и Emacs является способность сделать аккуратный материал при хранении рук на клавиатуру, и gVim, вероятно, сохранит Вас использующий мышь. (Обучение играть в подобные жулику игры одновременно дало мне практику с клавишами перемещения курсора, но заставило меня пытаться переместиться по диагонали в документы иногда.)

Emacs, вероятно, более доступен. Это является немодальным, и Вы не собираетесь завинчивать себя путем удара клавиши Caps Lock. Идея управлять редактором посредством ввода букв с клавишей CTRL вниз не должна быть слишком внешней современным продвинутым пользователям, хотя фактические ключи, чтобы сделать вещи будут казаться дикими и произвольными типичному  пользователю Windows/Mac OS X. Снова, версии, которые позволяют Вам использовать мышь, делают Вам немного одолжений в конечном счете.

Оба требуют, чтобы некоторый уровень экспертных знаний использовал эффективно. В отличие от, скажем, Блокнота, Вы не можете просто сесть и отредактировать.

Оба настраиваются, хотя для моих денежных расширений записи в том же Lisp редактор записан в, делает более гладкий опыт. (Emacs, как обычно распределено, не является действительно редактором. Это - среда Lisp, адаптированная для обработки текста, с большим количеством предзаписанного программного обеспечения, включая редактора. Следовательно шутка "Emacs делает достойную оболочку, но это могло использовать лучшего редактора".)

Я обычно использую Vim, потому что после обширного обучения это чувствует себя легче. Это может произойти из-за преимуществ в системе режима, где огромные числа команд являются доступным использованием одного пальца около домашних строк, или "детского утиного синдрома", который применяется очень к редакторам: после того как Вы изучаете хороший, Вы обычно придерживаетесь его.

Вы не пойдете неправильно с помощью также.

63
08.06.2011, 23:03
4 ответа

SFTP не является протоколом FTP по ssh, но расширением протокола SSH, включенного в SSH2 (и некоторые реализации SSH1). SFTP является протоколом передачи файлов, подобным FTP, но использует протокол SSH в качестве сетевого протокола (и извлекает выгоду из отъезда SSH для обработки аутентификации и шифрования).

SCP только для передачи файлов и не может сделать, другим вещам нравится список удаленные каталоги или файлы удаления, которые действительно делает SFTP.

РЫБА, кажется, еще один протокол, который может использовать или SSH или RSH для передачи файлов.

60
27.01.2020, 19:32
  • 1
    Стоящий добавления: существуют также FTPS, который является FTP по TLS. –  mikemaccana 24.02.2014, 14:37
  • 2
    @mikemaccana можно затем добавить ведьму FTPES, является возможностью использовать ftps явно по регулярному соединению FTP –  Kiwy 24.02.2014, 14:39

Поместите его простой:

SFTP = SSH + SFTP-server on server
SCP  = SSH + `scp` on server side
FISH = SSH + `dd` (and some other basic Unix utilities on the server side only) 
20
27.01.2020, 19:32
  • 1
    Но sftp и scp требует специальных программ на стороне сервера, в отличие от РЫБЫ, которая использует только основной Unix utuilities в удаленной оболочке. –  imz -- Ivan Zakharyaschev 17.12.2012, 20:00
  • 2
    Согласно описанию РЫБЫ, замечательная функция РЫБЫ - то, что не требуется чего-то специального на удаленной стороне (никакая программа сервера, как scp для scp или sftp-сервера). И существуют случаи действительно, когда удаленной стороной является "ограниченный" Unix, где Вы не можете установить то, что Вы хотите: для передачи файлов к Android через SSH (по WiFi), я записал набор сценариев rpush-кошки - возможно, клиент РЫБЫ работал бы. (tramp-fish.el в Emacs мог, также: постоянный клиент БРОДЯГИ не работал потому что stat не был ли на Android.) –  imz -- Ivan Zakharyaschev 18.12.2012, 15:02
  • 3
    Могли Вы уточнять как scp также необходим на стороне сервера, в дополнение к стороне клиента? С быстрым поиском Google я не мог найти ничего, что подтверждает это scp также необходим на стороне сервера. –  Johannes Bittner 26.10.2017, 13:22

РЫБА и SFTP подобны, и, как наблюдается и работают по SSH, SFTP требует, чтобы определенная поддержка и конфигурация в Сервере SSH упростили передачу, но это немного более безопасный и позволяет, чтобы SysAdmins только позволил SFTP (у этих РЫБ ситуаций, не будет работать).

РЫБА требует, чтобы оболочка (sh/rsh, например) скопировала и следовательно требует полного доступа SSH к машине, я предположил бы, что будет более трудно защитить (я не могу прокомментировать объективно это, поскольку я никогда не имел к).

Где возможно, я рекомендовал бы SFTP, scp, РЫБА (в том порядке).

Статья РЫБЫ Википедии

11
27.01.2020, 19:32
  • 1
    Согласно связанному описанию, замечательная функция РЫБЫ - то, что не требуется чего-то специального на удаленной стороне (никакая программа сервера, как scp для scp или sftp-сервера). И существуют случаи действительно, когда удаленной стороной является "ограниченный" Unix, где Вы не можете установить то, что Вы хотите: для передачи файлов к Android через SSH (по WiFi), я записал набор сценариев rpush-кошки - возможно, клиент РЫБЫ работал бы. (tramp-fish.el в Emacs мог, также: постоянный клиент БРОДЯГИ не работал потому что stat не был ли на Android.) –  imz -- Ivan Zakharyaschev 18.12.2012, 15:01
[114951]Протокол SSH создает безопасный туннель, через который вы можете передавать двунаправленный поток, и вы можете использовать этот поток, чтобы соединить любые два понравившихся вам процесса.
  • Наиболее известными двумя процессами будут оболочка (на сервере) и интерактивный эмулятор терминала (на клиенте). Это то, что вы используете, когда ssh на сервер и вводите команды в строке запроса удаленной оболочки.
  • SCP[115409] - это передача файлов с использованием только этой оболочки и удаленной команды. В SCP, как только клиент подключен к серверу, и все действия по аутентификации и авторизации выполнены, клиент отправляет удаленной оболочке команду типа [115410]scp -f myfile.txt[115411], которая просто записывает содержимое файла myfile. txt в поток (для чтения клиентом) или [115412]scp -t myfile.txt[115413], который читает из потока и записывает в myfile.txt.
  • Вы заметите, что -f и -t (для "из" и "в") нет в manpages scp. Они считаются внутренними. Существует легковесная схема подтверждения, а также схема передачи каталогов путем обёртывания содержимого файла в простые заголовки. Но по большей части SCP - это основной вопрос записи байт файла в туннель SSH, позволяющий SSH иметь дело со сложными вещами, такими как сжатие и целостность.

  • SFTP[115415] - это гораздо более сложный протокол передачи файлов, который опять-таки тюнингуется через SSH.

    В SFTP и запросы, и ответы представляют собой двоично закодированные пакеты с именами типа "SSH_FXP_OPEN", "SSH_FXP_STAT", "SSH_FXP_READ", "SSH_FXP_DATA", "SSH_FXP_CLOSE".

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

    SFTP имеет команды для выполнения многих вещей, к которым SCP не обращается; например, удаление, переименование, усечение, перемещение и т.д.

    Все подробности доступны в [115416]IETF Draft[115417].

    Стоит отметить, что более новые пакеты SSH заменяют пользовательский двоичный файл [115418]scp[115419] на симлинку к двоичному файлу SFTP. Этот SFTP выглядит как scp, но под обложкой он использует протокол SFTP.

    Citation[115662] -- O'Reilly [115663]SSH: The Secure Shell, The Definitive Guide[115664], раздел 5.7 "Подсистемы":[12124]WARNING: Не удаляйте строку subsystem-sftp из sshd2_config: она необходима для работы scp2 и sftp. Внутри обе программы запускают ssh2 -s sftp для выполнения передачи файлов.[12125]Fish[115425] - интересный кусок истории. Допустим, вы хотите передавать файлы по SSH, но на вашем удаленном компьютере нет SCP. Или, возможно, вы хотите выполнять более сложные файловые операции, чем SCP, но ваша удаленная система не имеет SFTP. Ни один из этих сценариев маловероятен сегодня, но когда была изобретена Fish, так и было.[12126] Поэтому разработчики клиента [115426]Midnight Commander[115427] решили создать свое собственное решение. В принципе это похоже на scp, но команд больше. Клиент посылает команды, которые выглядят так:[12127]Если вы говорите с сервером Fish, то он интерпретирует команду [115428]#RETR[115429]. Однако, если на удалённом сервере не установлен Fish-сервер, команды будут интерпретированы командной оболочкой. Сначала комментарий, затем команда, которая печатает информацию о файле, а затем содержимое файла, окруженное некоторыми маркерами.[12128]На самом деле, при отсутствии scp или рыбы, клиент "прокрутил" свой собственный scp-эквивалент - но он также может посылать команды оболочки для переименования, перемещения, усечения и т.д.[12129]Детали Fish находятся в источнике Midnight Commander [115430]здесь[115431]. [12130]Что все это значит с точки зрения конечного пользователя?[12131]старые реализации SSH сервера поддерживают scp, но не SFTP; вы не можете использовать SFTP клиент с этими[12132]Используйте SFTP для производительности, надежности и гибкости[12133]Ваш "scp" клиент может быть SFTP клиентом в маскировке ([115665]Citation needed[115666])[12134]Fish может быть полезен в нишевых обстоятельствах, но в противном случае используйте более стандартный SFTP. [12135]

    28
    27.01.2020, 19:32

    Теги

    Похожие вопросы