最小 Linux 上的 sshd:“无效用户 root 的密码失败”

最小 Linux 上的 sshd:“无效用户 root 的密码失败”

我正在尝试在最小 Fedora 安装上启动 SSH 服务器。我的意思是真正的最小:由磁盘映像生成器ramdisk 生成器。它甚至没有用户(缺席/etc/passwd等)。

因此,现在我尝试在这样的系统上运行 sshd。在构建过程中,我从一个最小(嗯……不那么最小)系统中复制了/etc/{ passwd, group, }。我还预生成了主机密钥和:shadowsshd_config

PermitRootLogin yes
UsePAM no
UseDNS no
UsePrivilegeSeparation no
PasswordAuthentication yes
HostKey /etc/ssh/ssh_host_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

完整脚本)。在 ramdisk 中,我通过 chpasswd 设置 root 密码,然后使用以下命令启动 SSHd:

/sbin/sshd -p $SSH_PORT

SSH_PORT目前是 22 - 默认的)。在 ramdisk 启动并报告后,我尝试登录。乐趣从这里开始:

debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: password
[email protected]'s password: 
debug1: Authentications that can continue: publickey,password,keyboard-interactive
Permission denied, please try again.
[email protected]'s password:

在服务器上的 ssh 日志中我看到

debug1: userauth-request for user root service ssh-connection method password
Could not get shadow information for NOUSER
Failed password for invalid user root from 192.0.2.1 port 38734 ssh2

因此,尽管我尝试了所有方法,用户“ root”仍然无效。任何想法都值得赞赏。

答案1

也许您没有在默认sshd_config文件中看到此评论?

# WARNING: 'UsePAM no' is not supported in Fedora and may cause several
# problems.

在 Fedora 和 Red Hat 上,必须启用 PAM 身份验证。

答案2

我想你现在一定早就解决了你的问题吧?

我有相同类型的设置,但在 Debian 上,而不是 Fedora,最小 Linux 没有 PAM 等,并且偶然发现了这个问题。谷歌没有帮助,在下载开放的 SSH 源代码后,我发现 sshd 在没有 PAM 的情况下在身份验证过程中使用 glibc 函数。毫无疑问,此功能非常通用,在任何类型的环境中都很有用,但如果未安装,getpwnam()它不会求助于检查/etc/passwd和朋友。libnss_files.so.*

将此库添加到我的最小 Linux 中解决了这个问题。我很好奇想知道你的情况的原因是什么?

相关内容