在Linux上安装SFTP,首先需要确保已安装OpenSSH服务器。使用命令
sudo apt-get install openssh-server
(Debian/Ubuntu)或sudo yum install openssh-server
(CentOS),然后启动并启用SSH服务:sudo systemctl start sshd
和sudo systemctl enable sshd
。Linux安装SFTP
步骤详解
一、创建sftp用户组和用户
1、创建用户组:
groupadd sftpgroup
2、创建用户并指定用户组,同时限制登录:
useradd -g sftpgroup -s /bin/nologin sftpadmin
3、设置密码:
passwd sftpadmin
二、创建用户home目录并配置权限
1、创建home目录:
mkdir -p /data/sftp/sftpadmin
2、修改用户主目录:
usermod -d /data/sftp/sftpadmin sftpadmin
3、修改目录权限:
chown root:root /data/sftp/sftpadmin chmod 755 /data/sftp/sftpadmin
三、配置SSH服务以支持SFTP
1、编辑配置文件:
vim /etc/ssh/sshd_config
2、注释掉默认的Subsystem行并添加新的配置:
#Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /data/sftp/%u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
四、创建上传文件夹并设置权限
1、创建上传文件夹:
mkdir /data/sftp/sftpadmin/upload
2、设置文件夹权限:
chown sftpadmin:sftpgroup /data/sftp/sftpadmin/upload chmod 755 /data/sftp/sftpadmin/upload
五、关闭Selinux策略(如需要)
1、编辑Selinux配置文件:
vim /etc/selinux/config
2、将SELINUX设置为disabled:
SELINUX=disabled
六、重启SSH服务
service sshd restart
步骤 | 命令 | 描述 |
1.0 | groupadd sftpgroup | 创建sftp用户组 |
1.1 | useradd -g sftpgroup -s /bin/nologin sftpadmin | 创建sftp用户并指定用户组,同时限制登录 |
1.2 | passwd sftpadmin | 设置用户密码 |
2.0 | mkdir -p /data/sftp/sftpadmin | 创建用户home目录 |
2.1 | usermod -d /data/sftp/sftpadmin sftpadmin | 修改用户主目录 |
2.2 | chown root:root /data/sftp/sftpadmin | 修改目录权限 |
2.3 | chmod 755 /data/sftp/sftpadmin | 修改目录权限 |
3.0 | vim /etc/ssh/sshd_config | 编辑SSH配置文件 |
3.1 | #Subsystem sftp /usr/libexec/openssh/sftp-server | 注释默认配置 |
3.2 | Subsystem sftp internal-sftp | 添加新配置 |
3.3 | Match Group sftpgroup | 匹配用户组 |
3.4 | ChrootDirectory /data/sftp/%u | 设置根目录为指定的用户目录 |
3.5 | ForceCommand internal-sftp | 强制使用内部SFTP命令 |
3.6 | AllowTcpForwarding no | 禁止TCP转发 |
3.7 | X11Forwarding no | 禁止X11转发 |
4.0 | mkdir /data/sftp/sftpadmin/upload | 创建上传文件夹 |
4.1 | chown sftpadmin:sftpgroup /data/sftp/sftpadmin/upload | 修改上传文件夹的所有权 |
4.2 | chmod 755 /data/sftp/sftpadmin/upload | 修改上传文件夹的权限 |
5.0 | vim /etc/selinux/config | 编辑Selinux配置文件 |
5.1 | SELINUX=disabled | 禁用Selinux |
6.0 | service sshd restart | 重启SSH服务 |
常见问题与解答 (FAQs)
Q1: SFTP用户无法登录怎么办?
A1: 确保以下几点:
1、SFTP用户已正确创建并添加到sftpgroup。
2、SSH服务已重启。
3、SSH配置文件中没有语法错误。
4、SELinux已禁用或相应策略已调整。
5、确保用户home目录和上传目录的权限设置正确。
Q2: 如何更改SFTP用户的根目录?
A2: 在SSH配置文件中,通过ChrootDirectory
指令设置用户的根目录。
Match User sftpadmin ChrootDirectory /data/sftp/sftpadmin
确保该目录存在且权限设置正确。
各位小伙伴们,我刚刚为大家分享了有关“linux安装sftp”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!