Я первоначально спросил и ответил на это на переполнение стека но мне сказали, что это не по теме и должно быть размещено здесь. Это настолько удобный инструмент, что я хочу быть уверен, что храню его в документации, чтобы я мог найти его в следующий раз, когда он мне понадобится.
SFTP используется серверами SSH, но это хорошо разработанный протокол, который хорошо работает сам по себе. sftp-сервер, разработанный OpenSSH, не зависит от SSH-сервера; sftp-сервер использует стандартный ввод/вывод. (Другие SFTP-серверы аналогичны.)
Совместное использование файловой системы через SFTP тривиально, аналогично тому, что вы можете сделать с NFS, но без необходимости корневого доступа. Я буду использовать socat в качестве демона для этого специального примера, но xinetd станет более постоянным решением. Местоположение sftp-сервера взято из моей установки Ubuntu пакета openssh-sftp-server.
На сервере:
$ mkdir общий_в_мире
$ cd shared_to_the_world
$ socat tcp-listen:1234,reuseaddr,fork exec:/usr/lib/openssh/sftp-сервер
На клиенте:
$ mkdir/tmp/sftp_test
$ sshfs -o переподключиться, ssh_command = "nc my_sftp_server_address 1234 --" : /tmp/sftp_test
$ cd /tmp/sftp_test
Теперь ваш клиент (и любой другой!) может беспрепятственно работать с файлами в общем каталоге на сервере. И чтение, и запись включены, так что будьте осторожны.
Рассмотрите возможность использования опций «bind» и «range» socat listen, чтобы ограничить доступ к вашему серверу.