Может ли Nautilus устанавливать SSHFS как / вместо SFTP?

У меня есть Nautilus, настроенный для монтирования удаленной файловой системы с использованием SFTP.

Пока это работает отлично, но SFTP, похоже, имеет некоторые проблемы, которые я считаю бесполезными:

  1. Когда я перезаписываю существующий текстовый файл, разрешения на чтение группы загадочным образом удаляются на удаленной машине.
  2. Когда я пытаюсь прикрепить файл к письму, перетаскивая его в Thunderbird, я получаю sftp: // url, который TB не может использовать (пока, если я открою диалог подключения TB и просматриваю хотя бы .gvfs, все хорошо).

Ничего из этого не происходит, когда я вручную монтирую ту же файловую систему через SSHFS. Можно ли настроить Nautilus для использования SSHFS? Может быть плагин? Он не отображается в списке доступных параметров «Подключение к серверу».

РЕДАКТИРОВАТЬ : Было отмечено, что sshfs использует протокол sftp в качестве бэкэнда. Хотя это может быть и так, реальная проблема заключается в том, что доступ к файлам через Nautilus менее плавный, чем монтирование через sshfs, и я хотел бы выяснить, как заставить Nautilus делать это хорошим способом.

2
задан 16 November 2015 в 17:30

2 ответа

Из Wikibook OpenSSH

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

Итак, в конце концов, это один и тот же способ общения. SSHFS использует SFTP. Разница в том, что sshfs - это драйвер файловой системы, который позволяет монтировать диск, который разрешает доступ через SFTP. Наутилус, однако, не монтирует диски, он только показывает их. Вы можете добавить свою файловую систему в / etc / fstab, чтобы она была смонтирована во время загрузки, однако я не советую это делать, так как соединение ssh может быть недоступно. Проще было бы установить bash-скрипт, который можно запускать в качестве запускаемого приложения.

Поведение, описанное в # 2, логично: поскольку вы подключаетесь только через SFTP, файл, который вы перетаскиваете в Thunderbird, существует не в вашей файловой системе, а в виде удаленного пути.

Редактировать из-за комментария:

Может быть, я объяснил это недостаточно хорошо. Вот пример: если ваш удаленный ресурс находится на сервере fooserver, а корневым каталогом является foodir, файл находится в каталоге foosubdir / foofile, то путь ресурса равен sftp://fooserver/foodir/foosubdir/foofile. Когда вы используете Nautilus SFTP, это единственный путь доступа к этому файлу, он является удаленным. Если вместо этого вы используете sshfs, содержимое foodir становится доступным из вашей файловой системы - sshfs является драйвером файловой системы. Тогда это как если бы файл хранился на вашем жестком диске. Содержимое ресурса sftp://fooserver/foodir логически сопоставлено с вашим каталогом монтирования ~/.gvfs. Затем thunderbird может получить доступ к этому файлу из контекста локальной файловой системы как ~/.gvfs/foosubdir/foofile. Thunderbird даже не замечает, что это удаленный файл, драйвер файловой системы sshfs, встроенный в ядро ​​klinux, делает это за вас.

0
ответ дан 16 November 2015 в 17:30

Для монтирования удаленной папки Хоста так, чтобы можно было рассматривать удаленные файлы, как будто они были локальны на Клиенте использовать sshfs вместо sftp.* Вам будет нужен Сервер OpenSSH на Хосте, прежде чем следующее будет работать.

Смонтируйте удаленную папку Хоста на локальном Клиенте

От Клиента, выполненного [1]:

test -e ~/mountpoint || mkdir --mode 700 ~/mountpoint
sshfs fred@server.example.org:. ~/mountpoint -p <port-number>

Начните использовать Наутилус

Теперь откройте локальную папку ~/mountpoint в Наутилусе. Поздравления, можно рассматривать удаленные файлы, как будто они были локальны на Клиенте!

Размонтируйте удаленную папку Хоста на локальном Клиенте

fusermount -u ~/mountpoint

*Детали: SFTP для передачи файлов к и от Клиента и Хоста, в то время как SSHFS является клиентом файловой системы, который заставляет удаленные файлы вести себя как локальный. Это - как будто Вы временно синхронизировали удаленную папку Хоста с виртуальной локальной папкой.

Поскольку Вы взаимодействуете с этими файлами SSHFS, Ваш локальный Клиент будет SSH копия от Хоста до Клиента, таким образом, вещи будут вести себя, как будто они были локальны на Вашем Клиенте. Любые изменения, которые Вы вносите, однако, вступают в силу на удаленный Хост и остаются даже после размонтирования.

-1
ответ дан 16 November 2015 в 17:30

Другие вопросы по тегам:

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