这个Hacker News故事是关于FTP的缺点的。我可以设置FTP的唯一原因是它很简单。
我scp
已经知道并使用过,但是有时我想与某人共享文件而不让他们ssh
访问我的服务器。我希望他们能够上载和下载文件,但别无其他,我想将它们限制在一个目录中。我也希望他们的连接像一样被加密ssh
。
符合这些条件的FTP替代品有哪些?
这个Hacker News故事是关于FTP的缺点的。我可以设置FTP的唯一原因是它很简单。
我scp
已经知道并使用过,但是有时我想与某人共享文件而不让他们ssh
访问我的服务器。我希望他们能够上载和下载文件,但别无其他,我想将它们限制在一个目录中。我也希望他们的连接像一样被加密ssh
。
符合这些条件的FTP替代品有哪些?
Answers:
Proftpd具有内置的sftp服务器,该服务器允许您出于文件传输的目的将用户与sshd完全隔离。您可以对其进行设置,以便它使用完全独立的passwd文件来进一步隔离它们(如果/ etc / passwd中实际上没有用户,则很难通过ssh登录到系统并突破chroot。 )
proftpd还允许您轻松地chroot并将sftp用户隔离到一组目录中。
我们做这样的事情:
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>
通过将rsync设置为用户的登录shell,可以通过ssh通过rsync启用上载和下载,而无需允许登录。这样可以启用ssh的所有功能,包括证书登录,加密和标准文件系统权限操作,而无需启用外壳程序帐户(因为该帐户没有外壳程序,而是rsync =)。