如何在没有 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”选项来限制对您的服务器的访问。

答案2

你不能。

安全FTPSSH,尽管明显是FTP衍生品(但事实并非如此)。 FTP导数是FTPS,具有传输加密的版本。

相关内容