当CentOS7 搭建sftp时遭遇Broken Pipe

今天接到通知需要在集群某个节点搭建一个sftp,没想到坑还挺多。

搭建sftp首先需要创建group组

然后建立对应的user,设置passwa user 密码。usermod -d /home/ user 设置家目录(实践证明这一步可以省略,具体参考https://www.linuxquestions.org/questions/red-hat-31/sftp-chroot-error-write-failed-broken-pipe-4175555089/

再配置/etc/ssh/sshd_config文件:

Match user sftpadmin 由于多次配置失败,我将每个user的配置单独写出来

ChrootDirectory  /home/user 注意:这里是写当前用户的目录。而不是常见的%u

ForceCommand internal-sftp

AllowTcpForwarding no

X11Forwarding no


因此 将 /etc/passwd中的home目录改成“/” .这里我并没有尝试不该会不会报错,你可以试试~

改这个文件后记得关闭一个服务(忘记了): setenforce 0

设置Chroot目录权限(关键):

权限设置不当,会报错“Broken Pipe”

首先将根目录及以上/sftp/user/ 都改为root属主和属组

再将权限设置为755,chmod 755 /sftp/user

然后将user目录下的其他文件设为sftpuser的属主和属组


最后记得, systemctl restart sshd.service 重启ssh ,再测试一下sftp sftpusers@127.0.0.1

捣鼓了半天,终于完成了基本设置。这个文章主要用于提醒小白(我自己),百度上面大部分Broken Pipe报错都是互相抄袭,都说是权限设置问题。还是得多找找。

有一个朋友发的一个说:https://www.cnblogs.com/sunshinea121/p/10648606.html

和我最后的设置一样,只是还需要config正确才能起作用。

这位朋友说的%h我试了一下也没成功,大家可以参考:

http://www.mamicode.com/info-detail-1821900.html

至少,这两篇文章和大部分的所谓“解决方案”提出了不同的解决思路,或许对别人有用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。