1、linux安装sftp

linux安装sftp

1、创建用户及用户组

创建组

groupadd sftp
cat /etc/group

创建用户

// 创建用户到用户组,并禁止登录
useradd -g sftp -s /bin/false wlsftp

// 查看用户
cat /etc/passwd

// 修改密码
passwd wlsftp

2、创建文件夹作为sftp用户的根目录

// 创建用户的根目录文件夹,若有其他用户sftpadmin,则mkdir -p /sftp/sftpadmin
mkdir -p /sftp/wlsftp

// 将文件夹设置为用户wlsftp的根目录
usermod -d /sftp/wlsftp wlsftp

cat /etc/passwd

3、修改sshd_config

vi /etc/ssh/sshd_config

3.1、注释Subsystem sftp /usr/libexec/openssh/sftp-server(若不注释,可以通过"cd / "看到系统所有文件)

注释这行

#Subsystem       sftp    /usr/libexec/openssh/sftp-server

3.2、增加配置

下面增加一下内容:

Subsystem       sftp    internal-sftp    
Match Group sftp 
ChrootDirectory /sftp/%u    
ForceCommand    internal-sftp    
AllowTcpForwarding no    
X11Forwarding no  

Match Group sftp:匹配sftp组的用户,如果有多个组,用逗号分隔。也可以使用"Match User wlsftp"匹配用户,多个用户之间也是用逗号分隔。
ChrootDirectory /sftp/%u:将用户的根目录指定到/u02/sftp/%u,%u代表用户名,%h表示用户根目录。
ForceCommand internal-sftp:指定sftp命令。
X11Forwarding no:是否允许用户可以使用端口转发

4、修改sftp用户目录的权限

chown root:sftp /sftp/wlsftp
chmod 755 /sftp/wlsftp

5、创建用户sftp可写入的目录,并授权

// 由于sshd_config配置中指定了根目录,根目录无法写入,因此要创建一个用于上传文件的目录。
// 目录所有者为wlsftp,有写入权限;所有组为sftp,无写入权限。
mkdir /sftp/wlsftp/upload
chown wlsftp:sftp /sftp/wlsftp/upload
chmod 755 /sftp/wlsftp/upload

6、关闭Selinux策略

vi /etc/selinux/config

修改SELINUX=disabled,否则重启sshd会提示权限不够。

7、重启ssh服务

systemctl restart sshd

8、连接验证

sftp -oPort=22 wlsftp@127.0.0.1
posted @ 2023-01-06 17:06  站着说话不腰疼  阅读(1973)  评论(0)    收藏  举报