如何在没有 SSH 的情况下使用 SFTP?

如何在没有 SSH 的情况下使用 SFTP?

我想要一个快速灵活的文件服务器,但不需要加密或身份验证。如何在 Linux 系统上使用 SFTP 实现这一点?

答案1

SFTP 恰好被 SSH 服务器使用,但它是一种完善的协议,可以独立运行。OpenSSH 开发的 sftp 服务器不依赖于 SSH 服务器;sftp 服务器使用标准输入/输出。(其他 SFTP 服务器类似。)

通过 SFTP 共享文件系统很简单,类似于使用 NFS 的操作,但不需要 root 访问权限。我将使用 socat 作为此临时示例的守护进程,但 xinetd 会提供更持久的解决方案。sftp-server 的位置来自我在 Ubuntu 上安装的 openssh-sftp-server 包。

在服务器上:

mkdir shared_to_the_world
cd shared_to_the_world
socat tcp-listen:1234,reuseaddr,fork exec:/usr/lib/openssh/sftp-server

在客户端上:

mkdir /tmp/sftp_test
sshfs -o reconnect,ssh_command="nc my_sftp_server_address 1234 --" : /tmp/sftp_test
cd /tmp/sftp_test

现在您的客户端(以及任何其他人的客户端!)可以无缝地使用服务器上共享目录中的文件。读写都已启用,因此请小心。

考虑使用 socat listen 的“bind”和“range”选项来限制对您的服务器的访问。

相关内容