在Ubuntu上安装和配置SFTP(SSH File Transfer Protocol)通常涉及以下几个步骤:
首先,确保你的系统包列表是最新的:
sudo apt update
然后,使用以下命令安装OpenSSH服务器:
sudo apt install openssh-server
安装完成后,启动SSH服务并设置为开机自启:
sudo systemctl start ssh
sudo systemctl enable ssh
默认情况下,OpenSSH服务器已经配置为允许SFTP连接。但是,如果你需要自定义配置,可以编辑 /etc/ssh/sshd_config 文件:
sudo nano /etc/ssh/sshd_config
在该文件中,找到或添加以下行来确保SFTP子系统被启用:
Subsystem sftp /usr/lib/openssh/sftp-server
你还可以添加或修改以下配置来限制用户的SFTP访问:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
这里,sftpusers 是一个用户组,你可以创建这个组并将要限制的用户添加到这个组中。
创建一个新的用户组来管理SFTP用户:
sudo groupadd sftpusers
将用户添加到该组:
sudo usermod -aG sftpusers your_username
如果你想限制SFTP用户只能访问其主目录,你需要确保主目录及其所有父目录的权限设置正确。例如:
sudo chown root:root /home/your_username
sudo chmod 755 /home/your_username
为用户的家目录创建一个子目录,该子目录将是用户可以访问的唯一目录:
sudo mkdir /home/your_username/upload
sudo chown your_username:sftpusers /home/your_username/upload
sudo chmod 755 /home/your_username/upload
应用配置更改后,重启SSH服务:
sudo systemctl restart ssh
使用SFTP客户端(如FileZilla或命令行sftp)连接到你的服务器,确保一切配置正确。例如,使用命令行sftp:
sftp your_username@your_server_ip
输入密码进行验证后,你就可以使用sftp命令进行文件传输操作了。
请注意,这些步骤假设你正在使用默认的SSH配置。如果你的服务器有特殊的防火墙规则或其他安全设置,你可能需要相应地调整它们以允许SFTP连接。