sftp安装部署

1、查看openssh版本
ssh -V //openssh版本必须大于4.8p1
2、创建sftp组
groupadd sftp
3、创建sftp用户
useradd -g sftp -s /sbin/nologin -M sftp
passwd sftp //设置密码
chage -M 99999 sftp //设置密码不过期
4、建立目录
mkdir -p /data/sftp/mysftp
usermod -d /data/sftp/mysftp sftp
5、修改sshd_config配置
vim /etc/ssh/sshd_config
注释掉
#Subsystem sftp /usr/libexec/openssh/sftp-server
后面再添加
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/mysftp
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
6、设置Chroot目录权限
chown root:sftp /data/sftp/mysftp
chmod 755 /data/sftp/mysftp
7、设置可以写入的目录
mkdir /data/sftp/mysftp/upload
chown sftp:sftp /data/sftp/mysftp/upload
chmod 755 /data/sftp/mysftp/upload
关闭selinux:
vim /etc/selinux/config
将文件中的SELINUX=enforcing修改为SELINUX=disabled,然后保存。
执行:
setenforce 0
8、重启sshd服务
systemctl restart sshd.service

如果连接sftp时出现下面的提示:

Write failed: Broken pipe     
Couldn't read packet: Connection reset by peer
这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。注意以下两点原则:

目录开始一直往上到系统根目录为止的目录拥有者都只能是 root,用户组可以不是 root。

目录开始一直往上到系统根目录为止都不可以具有群组写入权限 

上面2点一定注意,仔细检查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值