我知道,sshd将拒绝所有权或目录模式的连接,但有没有其他一些无声的检查和失败的用户的主目录的位置? 或者该分区的一些configuration问题?
使用CentOS版本6.3(最终)
我试图设置一个新的用户,git,在一个大的分区上的主目录,但sshd似乎默默地失败。
这是我的序列:
如果我在/ home / git中设置新用户,那么一切工作正常,但如果我设置用户在不同的分区上的主文件夹,然后sshd似乎默默无闻。
# userdel -r git # useradd -m -d /home/git -c "Git Test" -s /bin/bash -g users git # su -l git # mkdir .ssh # chmod 700 .ssh # cp /tmp/authorized_keys .ssh
这工作得很好,但如果我将useradd行更改为:
useradd -m -d /space/git -c "Git Test" -s /bin/bash -g users git
使用LogLevel Verbose ,auth日志中唯一的消息是:
Connection from XX.XX.XX.XX port 50774 Failed publickey for git from XX.XX.XX.XX port 50774 ssh2 Connection closed by XX.XX.XX.XX
传递-vvv到ssh显示:
debug1: Offering public key: <USER>/.ssh/id_rsa debug3: send_pubkey_test debug2: we sent a publickey packet, wait for reply
更新 :显示所有权:
# ls -l /space/git drwx------. 5 git users 4096 Mar 7 17:43 . drwxr-xr-x. 7 root root 4096 Mar 7 17:39 .. drwx------. 2 git users 4096 Mar 7 17:40 .ssh
/ home的所有权是相同的
你在/home之外创build了一个用户主目录,所以SELinux对你的意图一无所知,拒绝访问它。
要解决该问题,请为主目录设置一个永久的SELinux上下文,然后重新标记这些文件。
semanage fcontext -a -t user_home_t "/space/git(/.*)?" restorecon -r -v /space/git
(顺便说一句, /srv是这种事情的首选目录,而不是/space 。)