我正在尝试在最小 Fedora 安装上启动 SSH 服务器。我的意思是真正的最小:由磁盘映像生成器ramdisk 生成器。它甚至没有用户(缺席/etc/passwd
等)。
因此,现在我尝试在这样的系统上运行 sshd。在构建过程中,我从一个最小(嗯……不那么最小)系统中复制了/etc/
{ passwd
, group
, }。我还预生成了主机密钥和:shadow
sshd_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 中解决了这个问题。我很好奇想知道你的情况的原因是什么?