关于linux:Linux服务器下搭建SFTP服务

38次阅读

共计 1565 个字符,预计需要花费 4 分钟才能阅读完成。

我租了一个 3A 服务器,我把我的办法教给你们,有问题能够后盾私信我
SFTP 是基于默认的 22 端口,是 ssh 内含的协定,只有启动了 sshd 就能够应用。sftp 采纳的是 ssh 加密隧道,装置性方面较 ftp 强,而且依赖的是零碎自带的 ssh 服务
本次应用 liunx 自带的 internal-sftp
1、创立用户并设置明码

useradd -s /bin/false sftpuser
passwd sftpuser

2、批改 /etc/ssh/sshd_config 配置文件
正文掉上面这行

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

同时增加以下内容:

Subsystem sftp internal-sftp  #指定应用 sftp 服务应用零碎自带的 internal-sftp 
Match user  sftpuser        #匹配用户,如果要匹配多个组,多个组之间用逗号宰割
ChrootDirectory  /data/sftp   #设定属于用户组 sftp 的用户拜访的根文件夹如设置    /data/sftp   作为 sftpuser        的 sftp 根目录
ForceCommand internal-sftp #指定 sftp 命令, 强制执行外部 sftp,并疏忽任何    ~/.ssh/rc 文件中的命令
X11Forwarding no   #这两行,如果不心愿该用户能应用端口转发的话就加    上,否则删掉
AllowTcpForwarding no

3、敞开 selinux
批改 /etc/sysconfig/selinux 配置文件
将文件中的 SELINUX=enforcing 批改为 SELINUX=disabled
而后执行以下命令
setenforce 0 (// 0 是敞开,1 是开启)
4、重启 sshdfuwu

systemctl restart sshd 或 systemctl restart sshd.service        #重启 sshd
systemctl status sshd.service

5、权限赋予
批改 sftp-users 用户组用户目录权限
因为应用了 ChrootDirectory /data/sftp 作为 sftpuser 的 sftp 根目录,当初来批改权限
ChrootDirectory 设置的目录权限及其所有的下级文件夹权限,属主和属组必须是 root;
ChrootDirectory 设置的目录权限及其所有的下级文件夹权限,只有属主能领有写权限,也就是说权限最大设置只能是 755
因为 /data/sftpuser 是 root 创立的,权限 755,如果 sftpuser 间接 sftp 过来是没有权限写入,因而,须要 /data/sftp 下创立新目录并给与 qhlh 权限
创立文件夹:
mkdir /data/sftp/wly
权限赋予

chown sftpuser:sftpuser /data/sftp/wly 将目录给用户
chmod 755 /data/sftp/wly  #权限也只能是 755,否则无奈限度目录

6、测试验证
应用 Sftp sftpuser@192.168.31.49 或应用 filezilla 客户端连贯到 sftp 服务器
应用 filezilla 客户端连贯到 sftp 服务器上传一份文件验证:

7、异样问题:
 当本来 sftp 运行一段时间后忽然不行报如下谬误

并且服务器也连贯不上 sftp

工具报错:无奈初始化 sftp 协定,主机是 sftp 服务器吗?
很大起因是 password aged、明码老化、有效期曾经生效导致会话失败!
sftp 默认明码有效期是 30 天
解决方案如下:
1、间接用命令批改用户明码有效期:chage -M 99999 username–sftp 用户名
2、批改 /etc/shadow 文件:
3、批改 /etc/login.defs 文件:
(注:login.defs 文件参数只对创立普通用户失效,对 root 用户有效。shadow 文件比 login.defs 文件优先级要高!)

正文完
 0