当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 [email protected]

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

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

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

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

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

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

你可能感兴趣的:(当CentOS7 搭建sftp时遭遇Broken Pipe)