今天接到通知需要在集群某個節(jié)點搭建一個sftp,沒想到坑還挺多。
搭建sftp首先需要創(chuàng)建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目錄改成“/” .這里我并沒有嘗試不該會不會報錯,你可以試試~
改這個文件后記得關(guān)閉一個服務(忘記了): setenforce 0
設置Chroot目錄權(quán)限(關(guān)鍵):
權(quán)限設置不當,會報錯“Broken Pipe”
首先將根目錄及以上/sftp/user/ 都改為root屬主和屬組
再將權(quán)限設置為755,chmod 755 /sftp/user
然后將user目錄下的其他文件設為sftpuser的屬主和屬組



最后記得, systemctl restart sshd.service 重啟ssh ,再測試一下sftp sftpusers@127.0.0.1
搗鼓了半天,終于完成了基本設置。這個文章主要用于提醒小白(我自己),百度上面大部分Broken Pipe報錯都是互相抄襲,都說是權(quán)限設置問題。還是得多找找。
有一個朋友發(fā)的一個說:https://www.cnblogs.com/sunshinea121/p/10648606.html
和我最后的設置一樣,只是還需要config正確才能起作用。
這位朋友說的%h我試了一下也沒成功,大家可以參考:
http://www.mamicode.com/info-detail-1821900.html
至少,這兩篇文章和大部分的所謂“解決方案”提出了不同的解決思路,或許對別人有用。