Inițial am întrebat și am răspuns la asta stackoverflow dar mi s-a spus că e în afara subiectului acolo și ar trebui postat aici. Este un instrument atât de util încât vreau să fiu sigur că îl păstrez documentat, astfel încât să îl pot găsi data viitoare când am nevoie de el.
SFTP se întâmplă să fie folosit de serverele SSH, dar este un protocol bine dezvoltat care funcționează bine de unul singur. Serverul sftp dezvoltat de OpenSSH nu depinde de un server SSH; sftp-server utilizează intrare/ieșire standard. (Alte servere SFTP sunt similare.)
Este banal să partajați un sistem de fișiere prin SFTP, similar cu ceea ce ați putea face cu NFS, dar fără a fi nevoie de acces root. Voi folosi socat ca demon pentru acest exemplu ad-hoc, dar xinetd ar face o soluție mai permanentă. Locația sftp-server este din instalarea mea Ubuntu a pachetului openssh-sftp-server.
Pe server:
$ mkdir shared_to_the_world
$ cd shared_to_the_world
$ socat tcp-listen:1234,reuseaddr,furk exec:/usr/lib/openssh/sftp-server
Pe client:
$ mkdir /tmp/sftp_test
$ sshfs -o reconnect,ssh_command="nc my_sftp_server_address 1234 --": /tmp/sftp_test
$ cd /tmp/sftp_test
Acum clientul dvs. (și al oricui altcineva!) poate lucra fără probleme cu fișierele din directorul partajat de pe server. Atât citirea, cât și scrierea sunt activate, așa că aveți grijă.
Luați în considerare utilizarea opțiunilor „bind” și „range” ale socat listen pentru a limita accesul la serverul dvs.