在Linux中配置SFTP(SSH File Transfer Protocol)的步骤如下:
首先,确保你的系统上安装了OpenSSH服务器。可以使用以下命令来安装:
sudo apt update
sudo apt install openssh-server
创建一个新的用户组,用于管理SFTP用户:
sudo groupadd sftp
创建一个新的用户,并将其添加到sftp
组中。同时,设置用户的家目录为/data/sftp
,并禁止该用户通过SSH登录系统:
sudo useradd -g sftp -d /data/sftp -s /sbin/nologin sftpuser
为新创建的用户设置家目录的权限:
sudo mkdir -p /data/sftp/sftpuser
sudo chown root:sftp /data/sftp/sftpuser
sudo chmod 755 /data/sftp/sftpuser
sshd_config
文件编辑/etc/ssh/sshd_config
文件,添加或修改以下配置:
# 注释掉原来的Subsystem sftp行
# Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO -f AUTH
# 添加新的配置
Subsystem sftp internal-sftp -l INFO -f AUTH
# 匹配用户组sftp,并限制chroot目录
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
确保Chroot目录的权限设置正确:
sudo chown root:sftp /data/sftp/sftpuser
sudo chmod 755 /data/sftp/sftpuser
在用户的chroot目录下创建一个目录,供用户上传文件:
sudo mkdir -p /data/sftp/sftpuser/upload
sudo chown sftpuser:sftp /data/sftp/sftpuser/upload
sudo chmod 755 /data/sftp/sftpuser/upload
如果你的系统启用了SELinux,需要将其设置为宽松模式或禁用:
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sudo setenforce 0
最后,重启SSH服务以应用更改:
sudo systemctl restart sshd
使用新创建的用户登录,验证SFTP配置是否成功:
sftp sftpuser@127.0.0.1
如果一切配置正确,你应该能够成功登录SFTP,并开始使用SFTP进行文件传输。
以上就是在Linux中配置SFTP的基本步骤。请注意,具体的配置可能会因Linux发行版和具体需求而有所不同。在进行配置时,请根据实际情况进行调整。