Hacker News 报道都是关于 FTP 的缺点。我可能设置 FTP 的唯一原因是它很简单。
我知道并且scp
已经使用了,但有时我想与某人共享文件而不授予他们ssh
访问我服务器的权限。我希望他们能够上传和下载文件,但不能进行其他操作,并且我希望将他们限制在一个目录中。我还希望他们的连接像 一样加密ssh
。
有哪些 FTP 替代方案可以满足这些标准?
答案1
Proftpd 有一个内置的 sftp 服务器,可让您完全将用户与 sshd 隔离开来以进行文件传输。您可以将其设置为使用完全独立的 passwd 文件来进一步隔离它们(如果 /etc/passwd 中没有用户,则很难使用 ssh 登录系统并突破 chroot...)
proftpd 还允许您轻松地将 sftp 用户 chroot 并隔离到一组目录中。
我们这样做:
LoadModule mod_sftp.c
<VirtualHost 10.1.1.217>
ServerName "ftp.example.com"
# from http://www.proftpd.org/docs/howto/NAT.html
MasqueradeAddress 1.2.3.4
PassivePorts 27001 27050
UseSendfile off
ExtendedLog /var/log/proftpd/access.log WRITE,READ default
ExtendedLog /var/log/proftpd/auth.log AUTH auth
AuthUserFile /etc/proftpd/AuthUsersFile
AuthOrder mod_auth_file.c
<IfModule mod_sftp.c>
Port 10022
SFTPAuthorizedUserKeys file:/etc/proftpd/ssh_authorized_keys/%u
SFTPEngine On
SFTPLog /var/log/proftpd/sftp.log
SFTPHostKey /etc/ssh/proftpd-ssh_host_rsa_key
SFTPHostKey /etc/ssh/proftpd-ssh_host_dsa_key
MaxLoginAttempts 6
</IfModule>
</VirtualHost>
答案2
答案3
您没有指定“免费”作为要求,所以我将放弃 grouplogic 的 Mass Transit 软件包。对于大多数人来说,它可能有点过分,而且超出了他们的价格范围,但功能套件简直太棒了。获得第二台 Mass Transit 服务器并启动自动化,您就可以非常快速地移动一些文件。
答案4
您可以使用启用了 TLS 加密的 pure-ftpd。配置非常简单,要启用加密,请在配置文件中取消注释 TLS 选项(仅一行 :) ),将您的客户端配置为通过 ftps 连接即可。(您必须记住,并非所有 ftp 客户端都支持 ftps )。