搭建 SFTP 交换平台,实现用户隔离,解决 “client_loop: send disconnect: Broken pipe“

背景:
购买了阿里云主机,默认镜像(centos)自带了 SSH 和 SFTP。
需求是,通过这个主机的 SFTP,每个用户一个目录,都是互相隔离的。

修改 ssh 配置文件: vim /etc/ssh/sshd_config

# 端口号
Port 22
# 打开 sftp
Subsystem       sftp    internal-sftp
# 针对 sftp 用户组的设置
Match Group sftp
        ChrootDirectory %h
        ForceCommand internal-sftp

重启服务:

service sshd restart

创建用户

# 创建用户目录
mkdir /share/sjjh_user 
# 创建用户组
groupadd sftp
# 创建用户
useradd -d /share/sjjh_user -s /sbin/nologin sjjh_user
# 床架密码
passwd sjjh_user  # 123456
# 把用户加入用户组
usermod -G sftp sjjh_user

进行完上面的操作后,遗留问题是
1、sjjh_user 没有读写权限,并且,通过 chmod/chown 操作 /share/sjjh_user 后,会报错:sftp client_loop: send disconnect: Broken pipe
2、通过下面的操作创建 upload/download 目录,通过这两个目录中上传下载数据。

cd /share/sjjh_user && mkdir upload download && chown sjjh_user download upload

登陆使用:

sftp -P 22 sjjh_user@111.111.111.111 

版权声明:本文为ManWZD原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。