在CentOS上创建SFTP用户并监禁chroot – 用户身份验证错误

我有一个CentOs版本6.4与Digital Ocean,并希望成功创建SFTP用户并将它们安全到用户自己的chroot主目录,但我担心我弄得一团糟.

我已经尝试了很多东西,太多了,无法在这里列出,因为大多数可能不正确或者没有多大意义,但我觉得应该是正确的过程,我尝试的是: –

为sftp创建一个组: –

groupadd sftp

创建用户并设置其主目录: –

useradd -d /var/www/vhosts/domain.com dummyuser

用户设置密码: –

passwd dummyuser

用户组更改为’sftp’: –

usermod -g sftp dummyuser

用户的shell设置为/ bin / false: –

usermod -s /bin/false dummyuser

在sshd_config中编辑子系统(/ etc / ssh /): –

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

将以下内容添加到sshd_config文件底部: –

Match group sftp
    X11Forwarding no
    ChrootDirectory %h
    AllowTcpForwarding no
    ForceCommand internal-sftp

我确保所有以下目录都是root:root: –

/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com

如果我然后尝试使用用户dummyuser(在WinSCP中)通过SFTP登录服务器,我会得到以下内容: –

Authentication log (see session log for details):
Using username "dummyuser".

Authentication Failed.

我想要实现的只是将用户监禁到他们的主目录.我还设置并配置了vsftpd.用户可以正常登录,但可以访问整个服务器 – 我根本没有设法监禁工作.

编辑

忘了提,我然后重启了sshd: –

service sshd restart

在WinSCP中生成错误时,其帮助页面here.

记录结果

/var/log/secure

我用server_name替换了实际的服务器名称.

Apr 28 14:20:56 server_name sshd[9944]: Accepted password for dummyuser from 80.194.255.4 port 44402 ssh2
 Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session opened for user dummyuser by (uid=0)
 Apr 28 14:20:56 server_name sshd[9946]: fatal: bad ownership or modes for chroot directory component "/var/www/vhosts/"
 Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session closed for user dummyuser
这是一个常见的陷阱: 所有直到chroot home的文件夹必须是拥有的,并且只能由root用户写入. 文件夹不能是组可写的 – 即使该组是root.

相关文章

Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native