Dropbear -> Openssh:为什么现在要求输入密码?

Dropbear -> Openssh: Why does it ask for a password now?

我正在开发带有基于 Yocto 的嵌入式 Linux 的嵌入式板 (i.MX6)。到目前为止,我使用 Dropbear 作为 SSH 服务器。但是,Dropbear 不提供我需要的 SFTP 服务器。因此我从 Dropbear 切换到 OpenSSH(从标准 Poky 源构建它,并通过 opkg 安装)。

但是,从那以后我就再也不能通过SSH登录板子了,因为服务器要求输入密码,我不知道。唯一的用户是 root,并且没有配置密码(这仍然是正确的,因为我可以毫无问题地通过 RS232 在本地登录)。为什么 OpenSSH 要求输入密码?我怎样才能删除它?

我认为 /etc/ssh 中的一个私钥中可能设置了密码短语:

/etc/ssh/ssh_host_dsa_key
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_rsa_key

所以我分别为他们每个人做了ssh-keygen -p -f /etc/ssh/ssh_host_rsa_key,但没有帮助。

这是 sshd_config 文件的基本部分:

# grep '^[^#]' /etc/ssh/sshd_config
Protocol 2
PermitRootLogin yes
AuthorizedKeysFile .ssh/authorized_keys
UsePrivilegeSeparation sandbox # Default for new installations.
Compression no
ClientAliveInterval 15
ClientAliveCountMax 4
Subsystem       sftp    /usr/lib/openssh/sftp-server

有什么想法吗?

如果您的 EXTRA_IMAGE_FEATURES 中有 "debug-tweaks",则密码将为空:这对于开发映像可能没问题。

如果您想获得一些安全性,您可以添加一个将 public 密钥安装到 /root/.ssh/authorized_keys 的配方或在图像配方或本地配置中使用 extrausers class 设置密码。

您确定 IMAGE_FEATURESEXTRA_IMAGE_FEATURES 中有 debug-tweaks 吗?

如果是这样,ROOTFS_POSTPROCESS_COMMAND 应该包括 ssh_allow_empty_password();,而 ssh_allow_empty_password(); 又应该在 /etc/ssh/sshd_config/etc/ssh/sshd_config_readonly 中设置 PermitEmptyPasswords yes。那应该允许您在 OpenSSH 中使用空密码。