我正在Red Hat 6.9上构build一个SFTP服务器(显然,我正在使用OpenSSH的FTP扩展)。 我遵循以下指南:
https://www.howtoforge.com/tutorial/how-to-setup-an-sftp-server-on-centos/
我configuration一切如何描述。 我使用的客户端操作系统是Windows 10.我已经用Putty的SFTP客户端和WinSCP进行了testing(我不相信我的问题是与客户端相关的)。 当我尝试连接时,系统会提示input用户名,然后input密码。 input密码后,会话立即closures。 / var / log / secure显示了这些相关的消息:
Aug 2 14:30:28 SFTP_Server sshd[4087]: pam_unix(sshd:session): session opened for user scott.ftp by (uid=0) Aug 2 14:30:28 SFTP_Server sshd[4089]: fatal: bad ownership or modes for chroot directory "/sftp/scott.ftp/data" Aug 2 14:30:28 SFTP_Server sshd[4087]: pam_unix(sshd:session): session closed for user scott.ftp
要显示与教程相匹配的目录权限:
[root@SFTP_Server data]# ls -alh / | grep sftp drwxr-xr-x 4 root root 4.0K Aug 2 12:37 sftp [root@SFTP_Server data]# ls -alh /sftp total 16K drwxr-xr-x 4 root root 4.0K Aug 2 12:37 . dr-xr-xr-x. 25 root root 4.0K Aug 2 12:35 .. drwxr-xr-x 3 root root 4.0K Aug 2 12:38 scott.ftp [root@SFTP_Server data]# ls -alh /sftp/scott.ftp/ total 12K drwxr-xr-x 3 root root 4.0K Aug 2 12:38 . drwxr-xr-x 4 root root 4.0K Aug 2 12:37 .. drwxrwx--- 2 scott.ftp sftpusers 4.0K Aug 2 12:38 data [root@SFTP_Server data]# ls -alh /sftp/scott.ftp/data/ total 8.0K drwxrwx--- 2 scott.ftp sftpusers 4.0K Aug 2 12:38 . drwxr-xr-x 3 root root 4.0K Aug 2 12:38 ..
我不知道是什么让我这个想法尝试,但为了排除故障,我更改了“。”的权限。 目录:
[root@SFTP_Server data]# pwd /sftp/scott.ftp/data [root@SFTP_Server data]# chown root:root . [root@SFTP_Server data]# ls -alh total 8.0K drwxrwx--- 2 root root 4.0K Aug 2 12:38 . drwxr-xr-x 3 root root 4.0K Aug 2 12:38 ..
现在我尝试再次连接,我可以成功连接。 但是我不能列出目录或者制作目录或者其他的动作。 我在这里得到的错误是“权限被拒绝”。 虽然仍然通过SFTP连接,但在另一个SSH连接中,我更改了权限:
[root@SFTP_Server data]# chown scott.ftp:sftpusers . [root@SFTP_Server data]# ls -alh total 8.0K drwxrwx--- 2 scott.ftp sftpusers 4.0K Aug 2 12:38 . drwxr-xr-x 3 root root 4.0K Aug 2 12:38 ..
现在我可以在SFTP会话中创build目录和其他动作。 我退出SFTP会话并尝试连接,login失败,如上所述。
任何帮助是极大的赞赏。
现在我尝试再次连接,我可以成功连接。 但是我不能列出目录或者制作目录或者其他的动作。 我在这里得到的错误是“权限被拒绝”。
这在技术上不可能创build一个chroot ,它可以被连接用户写入(除非使用扩展ACL,在这种情况下,由于安全原因禁止使用扩展ACL)。
一般的build议是要么
data/创build另一个目录,该目录可以被该用户写入。