如何保护“公共” sftp?

如何保护“公共” sftp?

我有一台服务器,允许我的服务的部分用户使用 SFTP 上传文件。当我谈到用户时,我既不确定他们是谁,也不确定有多少人有访问权限。

我已设置访问权限如下:

  • 使用用户名和密码进行 SFTP(SSH)访问:PasswordAuthentication yes
  • sftp用户属于强制使用 的群组internal-sftp
  • 登录处于沙盒ChrootDirectory %h/srv/sftp/incoming
  • 登录 Shell 是/bin/false

我还能做些什么来确保如此多用户的 SFTP 访问安全?

该机器运行 ArchLinux。Web 服务器是nginx,但其中的文件/srv/sftp/incoming不由 Web 服务器提供。它仅供内部使用。

答案1

您可以为每个用户设置 SSH 密钥,这样他们就必须使用私钥才能访问 SFTP 服务器。让客户端自己生成私钥和公钥,然后让他们发送民众对您来说是关键,因此您可以将其添加到~/.ssh/authorized_keys文件中。

您当然可以自己生成私钥和公钥,但这意味着您需要以某种方式将私钥发送给客户端,这使得它不安全。

ssh-keygen -t rsa

当设置密钥时,您可以禁用密码登录,/etc/ssh/sshd_config以便他们必须使用私钥才能访问服务器。

PasswordAuthentication no

相关内容