sshd 在考虑接受密钥时是否会进行文件系统检查?

sshd 在考虑接受密钥时是否会进行文件系统检查?

我知道 sshd 会拒绝连接目录所有权或模式错误,但是否存在与用户主目录位置相关的其他静默检查和故障?或者该分区存在某些配置问题?

使用 CentOS 版本 6.3(最终版)

我正在尝试在一个大分区上设置一个新用户 git 及其主目录,但 sshd 似乎悄然失败了。

这是我的顺序:

  1. 添加新用户
  2. 使用已知公钥设置 .ssh/authorized_keys
  3. 从远程主机进行 ssh

如果我在 /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,身份验证日志中唯一的消息是:

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 上的所有权相同

答案1

您在 之外创建了一个用户主目录/home,因此 SELinux 对您的意图一无所知,拒绝对其访问。

要解决该问题,请为主目录设置永久的 SELinux 上下文,然后重新标记文件。

semanage fcontext -a -t user_home_t "/space/git(/.*)?"
restorecon -r -v /space/git

(顺便提一句,/srv是此类内容的首选目录,而不是/space。)

相关内容