即使用户已分配主目录,Chdir 也会失败

即使用户已分配主目录,Chdir 也会失败

我面临这个问题 - 当我 ssh 到服务器时,用户已正确身份验证,但随后连接被关闭:

无法 chdir 到主目录 /home/blazej:没有这样的文件或目录。

getent passwd blazej显示:

blazej:x:1002:1002::/home/blazej:

sshd_conf:

# Begin SFTP-Server block
Match Group sftp
    ChrootDirectory %h
    AllowTCPForwarding no
    X11Forwarding no
#    ForceCommand internal-sftp // This is commented not to force sfto on `sftp` group - I want to be able to ssh with users in `sftp` group
    PasswordAuthentication yes
# End SFTP-Server block

luqo33 用户所属组:blazej, sftp

我不明白为什么与blazej用户进行 ssh 会失败。另一方面,sftp 按预期工作并将用户记录到他的主目录/home/blazej

您知道为什么我在终端中 ssh 失败吗?

更多细节:

ls -la在 /home/blazej 中:

root@host:/home/blazej# ls -la

total 32
drwxr-x--- 5 root   sftp     4096 Nov 21 09:00 .
drwxr-xr-x 5 root   root     4096 Nov 21 09:00 ..
-rw-r--r-- 1 blazej blazej    220 Apr  8  2014 .bash_logout
-rw-r--r-- 1 blazej blazej   3637 Apr  8  2014 .bashrc
drwxr-x--- 2 blazej www-data 4096 Nov 21 09:00 exports
drwxr-x--- 2 blazej www-data 4096 Nov 21 09:00 imports
drwxr-x--- 2 blazej www-data 4096 Nov 21 09:00 other
-rw-r--r-- 1 blazej blazej    675 Apr  8  2014 .profile

答案1

我不明白为什么使用 blazej 用户进行 ssh 会失败。

用户被chroot-ed 到他的主目录(%h是他的主目录)。这意味着 consequentcd将会失败,因为 root 是针对进程的/home/blazej,并且没有/home/blazej/home/blazej.

答案2

我也有同样的问题。为了解决这个问题,我设置了

ChrootDirectory /home/%u

并更改用户的主目录

usermod -d / <user>

相关内容