我嘗試在 Centos 7 上配置 SFTP,在我的第一台伺服器上它工作得很好,但在我的第二台伺服器上,當我嘗試連接時:
sftp USERNAME@serveripaddress
我有這個錯誤:
Could not read packet: Connection reset by peer
我用這個方法:
adduser USERNAME
passwd USERNAME
groupadd sftp_only
usermod -aG sftp_only USERNAME
設定 SSH chroot :
vi /etc/ssh/sshd_config
新增評論 :
#Subsystem Sftp /usr/libexec/openssh/sftp-server
新增以下行:
Subsystem sftp internal-sftp
在文件末尾添加:
Group sftp_only Match
ChrootDirectory /var/www
ForceCommand internal-sftp
X11Forwarding No
AllowTcpForwarding No
重新啟動 SSH:
service sshd restart
我的 2 台伺服器上有相同的 iptables 規則,我嘗試停用 iptables。
也許我需要安裝像 VSFTPD 這樣的 FTP 伺服器?
謝謝你幫助我,因為幾個小時以來我完全被封鎖了。
答案1
您可以使用提供 SFTP 前端的 proftpd。透過這種方式,您可以將 SFTP、FTP 和 FTP/S 聯合到一個守護程式中。但是,您不能使用連接埠 22 進行 SFTP,否則您將不得不放棄該連接埠上的 SSH,因為 proftpd 和 sshd 無法為 SFTP 綁定相同的連接埠。
答案2
貓 /var/log/auth.log
May 10 17:08:32 machine sshd[31902]: fatal: bad ownership or modes for chroot directory component "/var/www/html/nextcloud/"
那是我的問題
之後我們就可以關注這個了chroot 目錄元件的擁有權或模式錯誤
順便說一句,我最終使用了綁定解決方案需要協助 - 將對 sftp 使用者的存取權限限制為其他使用者主頁->子資料夾
答案3
更改PasswordAuthentication no
為文件PasswordAuthentication yes
中/etc/ssh/sshd_config
並使用service sshd restart
命令重新啟動。
答案4
確保主資料夾由 root 使用者擁有,預設資料夾由 sftp 使用者擁有。例如,當您想要將傳入作為使用者「guestuser」的主目錄時,您應該使用使用者/guestuser/incoming 建立資料夾。 guestuser 資料夾應歸 root 所有,傳入資料夾應歸 guestuser 所有。