Debian下怎样配置SFTP
导读:1. 安装OpenSSH服务器 Debian系统通常预装OpenSSH服务器,若未安装,可通过以下命令完成安装: sudo apt update && sudo apt install openssh-server 安装完...
1. 安装OpenSSH服务器
Debian系统通常预装OpenSSH服务器,若未安装,可通过以下命令完成安装:
sudo apt update &
&
sudo apt install openssh-server
安装完成后,SSH服务会自动启动;若未启动,可手动执行sudo systemctl start ssh启动服务,并通过sudo systemctl enable ssh设置开机自启。
2. 配置SSH以启用SFTP
SFTP的配置文件位于/etc/ssh/sshd_config,需用文本编辑器(如nano)修改该文件:
sudo nano /etc/ssh/sshd_config
- 启用内置SFTP子系统:找到
# Subsystem sftp /usr/lib/openssh/sftp-server行,删除行首的#号,将其改为:
此配置将使用SSH内置的SFTP服务,无需额外安装Subsystem sftp internal-sftpsftp-server包。 - 限制用户/组使用SFTP(可选但推荐):为增强安全性,建议限制特定用户或组只能使用SFTP。例如,添加以下配置以限制
sftpusers组的用户:
其中:Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding noMatch Group sftpusers:匹配sftpusers组的用户;ChrootDirectory %h:将用户的根目录限制为其主目录(%h代表用户主目录);ForceCommand internal-sftp:强制用户只能使用SFTP,禁止SSH shell访问;AllowTcpForwarding no和X11Forwarding no:禁用端口转发和X11转发,进一步提升安全性。
3. 创建SFTP用户组及用户
- 创建专用SFTP用户组(可选但推荐):
sudo groupadd sftpusers - 创建用户并加入
sftpusers组:若需直接创建用户并设置密码,可使用sudo adduser username # 创建用户(按提示设置密码) sudo usermod -aG sftpusers username # 将用户添加到sftpusers组sudo useradd -m -G sftpusers username(-m创建主目录,-G添加到附加组)。
4. 设置用户主目录权限
SFTP用户的根目录(ChrootDirectory)需满足以下权限要求:
- 主目录所有者必须为
root(避免用户越权修改目录结构); - 主目录权限需设为
755(允许用户读取和进入目录,但不能写入)。
执行以下命令设置权限:
sudo chown root:root /home/username # 将主目录所有者设为root
sudo chmod 755 /home/username # 设置主目录权限为755
若用户需要在主目录内上传/下载文件,可在主目录下创建子目录(如upload),并设置该子目录的所有者为该用户:
sudo mkdir /home/username/upload
sudo chown username:username /home/username/upload
5. 重启SSH服务
完成配置文件修改后,需重启SSH服务使更改生效:
sudo systemctl restart ssh
若需验证SSH服务状态,可执行sudo systemctl status ssh,确认服务处于active (running)状态。
6. 测试SFTP连接
使用SFTP客户端(如终端命令或FileZilla)测试连接:
sftp username@your_server_ip
输入用户密码后,若成功登录,应显示类似以下界面:
Connected to your_server_ip.
sftp>
此时可执行ls(查看目录)、put local_file(上传文件)、get remote_file(下载文件)等命令,验证SFTP功能正常。
注意事项
- 若需限制用户只能访问特定目录,可将
ChrootDirectory设置为该目录路径(如ChrootDirectory /var/sftp/username),但需确保该目录的权限符合要求(所有者为root,权限为755)。 - 建议开启SSH密钥认证(禁用密码认证),进一步提升安全性。可通过修改
/etc/ssh/sshd_config中的PasswordAuthentication no实现(需提前为用户配置SSH密钥)。 - 查看SFTP日志可帮助排查问题,日志文件通常位于
/var/log/auth.log。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian下怎样配置SFTP
本文地址: https://pptw.com/jishu/735005.html
