在Ubuntu上设置SFTP共享文件夹,可以通过以下步骤实现:
安装SSHFS:
sudo apt update
sudo apt install sshfs
创建一个挂载点:
mkdir ~/sftp_share
挂载远程目录到本地:
假设你有一个远程服务器,IP地址为remote_server_ip
,用户名为username
,远程目录为/path/to/remote/directory
。
sshfs username@remote_server_ip:/path/to/remote/directory ~/sftp_share
配置SFTP服务器:
编辑/etc/ssh/sshd_config
文件,确保以下配置存在并启用:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
创建SFTP用户组:
sudo groupadd sftpusers
添加用户到SFTP用户组:
sudo usermod -aG sftpusers your_username
重启SSH服务:
sudo systemctl restart sshd
设置挂载点的权限: 确保挂载点对SFTP用户组可写:
sudo chown root:sftpusers ~/sftp_share
sudo chmod 755 ~/sftp_share
安装vsftpd:
sudo apt update
sudo apt install vsftpd
配置vsftpd:
编辑/etc/vsftpd.conf
文件,确保以下配置存在并启用:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
重启vsftpd服务:
sudo systemctl restart vsftpd
创建SFTP用户:
sudo adduser sftpuser
sudo passwd sftpuser
设置用户主目录权限:
sudo chown sftpuser:sftpuser /home/sftpuser
sudo chmod 755 /home/sftpuser
配置SFTP目录权限: 确保SFTP用户只能访问其主目录:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
安装Nginx:
sudo apt update
sudo apt install nginx
配置Nginx:
编辑/etc/nginx/sites-available/default
文件,添加以下配置:
server {
listen 80;
server_name your_domain.com;
location /sftp {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
sftp_internal_server on;
sftp_max_list_size 1024;
sftp_max_file_size 10485760;
root /path/to/your/local/directory;
autoindex on;
}
}
创建用户认证文件:
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd your_username
重启Nginx服务:
sudo systemctl restart nginx
通过以上方法,你可以在Ubuntu上设置SFTP共享文件夹,并根据需要进行配置和调整。