我面临这个问题 - 当我 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>