如何确保'公共'sftp?

我有一个服务器,使我的服务的一些用户使用SFTP上传文件。 当我谈论用户时,我不能确定他们是谁,也不知道有多less人可以访问。

我设置了访问权限如下:

  • 使用用户名和密码进行SFTP(SSH)访问: PasswordAuthentication yes
  • 用户属于强制使用internal-sftp的组internal-sftp
  • login被沙盒ChrootDirectory %h ,即/srv/sftp/incoming
  • loginShell是/bin/false

还有什么我可以做的,以确保一个这样的用户范围的SFTP访问?

机器运行ArchLinux。 networking服务器是nginx/srv/sftp/incoming中的文件不是由networking服务器提供的。 这只是供内部使用。

您可以为每个用户设置SSH密钥,因此他们必须使用私钥访问SFTP服务器。 让客户自己生成私钥和公钥,让他们发送公钥给你,所以你可以把它添加到~/.ssh/authorized_keys文件中。

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

 ssh-keygen -t rsa 

当密钥被设置时,你可以禁用密码login,所以他们必须使用私钥才能访问服务器。

 PasswordAuthentication no