sshd_selinux_copy_context:getcon 失败,没有此类文件或目录(从 Windows 到 chroot 帐户的 SFTP)

sshd_selinux_copy_context:getcon 失败,没有此类文件或目录(从 Windows 到 chroot 帐户的 SFTP)

某大学正在尝试使用 SFTP 客户端和 SSH 无密码登录从 Windows sftp 到 RHEL7 服务器。 用户帐户是chrooted在服务器上。

openssh版本6.6.1安装在RHEL7服务器上。

在 SFTP 连接尝试失败后,我检查了/var/log/secure服务器并发现了以下内容:

Sep 12 17:00:22 serverbox sshd[32652]: Accepted publickey for specialuser from 1.1.1.77 port 58776 ssh2: RSA FINGERPRINT
Sep 12 17:00:22 serverbox sshd[32652]: pam_unix(sshd:session): session opened for user specialuser by (uid=0)
Sep 12 17:00:22 serverbox sshd[32652]: sshd_selinux_copy_context: getcon failed with No such file or directory [postauth]
Sep 12 17:01:18 serverbox sshd[32652]: Received disconnect from 1.1.1.77: 11: disconnected by user [postauth]
Sep 12 17:01:18 serverbox sshd[32652]: pam_unix(sshd:session): session closed for user specialuser

尝试从 Putty SFTP 或 Filezilla(均配置为使用本地私钥)连接时,会出现相同的错误。

为了便于阅读,以下是 getcon 行:

sshd_selinux_copy_context: getcon failed with No such file or directory [postauth]

因此,公钥被接受,然后 Putty(和 Filezilla SFTP)在找不到它要查找的内容后就会丢失。

权限:

drwxr-xr-x. root root /home/specialuser
drwx------. specialuser sftponly   /home/specialuser/.ssh
drw-------. specialuser sftponly   /home/specialuser/.ssh/authorized_keys

服务器上的有效公钥:

[user@server]# ssh-keygen -l -f authorized_keys
2048 sha1:fi:ng:er:pr:in:tt  rsa-key-20160913 (RSA)

对于 chroot 设置的其余部分,请检查这个答案我在另一个问题上发帖。

使用 chroot 帐户的 SFTP 在 Linux 客户端上运行良好:

我在本地 Linux 系统 (Ubuntu) 上创建了相同的用户帐户 ( specialuser),将本地帐户复制id_rsa.pub到服务器的/home/specialuser/.ssh/authorized_keys,并且能够毫无问题地进行 sftp 。

SELinux 被排除

为了帮助排除故障,我暂时禁用了 SELinux,但在尝试从 Windows/Putty 中继续看到相同的错误“getcon failed...”。

启用密码验证时出现同样的问题

我还暂时启用了 PasswordAuthentication for specialuser,但这仍然导致 Putty 退出,并且服务器文件中出现上述“getcon failed”错误/var/log/secure

记录该尝试的数据(详细):

Sep 14 10:34:32 serverbox sshd[41228]: Accepted password for specialuser from 1.1.1.77 port 61135 ssh2
Sep 14 10:34:32 serverbox sshd[41228]: pam_unix(sshd:session): session opened for user specialuser by (uid=0)
Sep 14 10:34:32 serverbox sshd[41228]: User child is on pid 41283
Sep 14 10:34:32 serverbox sshd[41228]: Changed root directory to "/home/specialuser" [postauth]
Sep 14 10:34:32 serverbox sshd[41228]: sshd_selinux_copy_context: getcon failed with No such file or directory [postauth]
Sep 14 10:34:32 serverbox sshd[41228]: Starting session: forced-command (config) 'internal-sftp' for specialuser from 1.1.1.77 port 61135 [postauth]
Sep 14 10:34:32 serverbox sshd[41228]: Connection closed by 1.1.1.77 [postauth]
Sep 14 10:34:32 serverbox sshd[41228]: Transferred: sent 1976, received 1728 bytes [postauth]
Sep 14 10:34:32 serverbox sshd[41228]: Closing connection to 1.1.1.77 port 61135 [postauth]
Sep 14 10:34:32 serverbox sshd[41228]: pam_unix(sshd:session): session closed for user specialuser

编辑

我在服务器上创建了一个单独的、非 chroot 的用户。我可以通过公钥/私钥 使用PuttyPutty SFTP到服务器。SSH/SFTP

问题是到达chroot 的主文件夹

附录 1:记录数据LogLevel DEBUG3

https://justpaste.it/ycdi (输出超出了该问题允许的最大字符数)

sshd_配置

Subsystem sftp internal-sftp #added
Match group sftponly
        PasswordAuthentication yes
        ChrootDirectory %h
        AllowTcpForwarding no
        ForceCommand internal-sftp

相关内容