我正在使用基于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
做了# 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
,但它没有帮助。
这是sshd_config文件的基本部分:
{{1}}
有什么想法吗?
答案 0 :(得分:2)
您确定debug-tweaks
或IMAGE_FEATURES
中有EXTRA_IMAGE_FEATURES
吗?
如果是这样,ROOTFS_POSTPROCESS_COMMAND
应该包含ssh_allow_empty_password();
,而PermitEmptyPasswords yes
应在/etc/ssh/sshd_config
和/etc/ssh/sshd_config_readonly
中设置describe()
。这应该允许你在OpenSSH中使用空密码。
答案 1 :(得分:1)
如果你有" debug-tweaks"在您的EXTRA_IMAGE_FEATURES
中,密码将为空白:这可能适用于开发图像。
如果您想要一些安全性,可以添加一个安装公钥的配方到 /root/.ssh/authorized_keys 或在图像中使用extrausers类配方或本地配置来设置密码。