YOCTO-Dropbear拒绝密码



我正在开发一个基于Yocto的Linux。我安装了Dropbear SSH。如果调试调整包含在IMAGE-FATURES中,我可以无需密码通过SSH正确登录。现在,我想设置一个基于密码的登录。因此,我删除了调试调整,并在我的食谱中添加了以下几行:

inherit extrausers
EXTRA_USERS_PARAMS = "usermod -P mypassword root;"

现在,当我尝试通过SSH登录时,我会收到以下错误:

root@IP:权限被拒绝(公钥、密码(

问题出在哪里?我检查了密码是否正确。

BelHadjSalem TALEL的回答所描述的方法,包括直接修改/etc/default/dropbear文件以自定义DROPBEAR_EXTRA_ARGS,将起作用。然而,还有一种更优雅的方式来完成同样的事情。

只需在local.conf(或自定义图像.bb文件(中将allow-root-login添加到IMAGE_FEATURES即可。

这导致BitBake管道也可以做同样的事情(删除-w标志(,而无需对其进行处理或维护。此外,即使您将图像切换为使用OpenSSH而不是Dropbear(通过在IMAGE_FEATURE列表中从ssh-server-dropbear更改为ssh-server-openssh(,它也会继续工作。

请注意,debug-tweaks隐式启用了allow-root-login,但您可以只添加allow-root-login,而不必打开所有debug-tweaks

我创建了一个简单的poky构建,带有一个简单元测试层,该层附加到核心映像minimum this:

inherit extrausers
EXTRA_USERS_PARAMS = "usermod -P 123 root;"
IMAGE_FEATURES_remove = "debug-tweaks"
IMAGE_FEATURES_append = " ssh-server-dropbear"
IMAGE_INSTALL_append = " dropbear"

构建完成后,我开始运行qemu,这就是我的想法:

一开始我尝试连接ssh,但它实际上拒绝了我

默认情况下dropbear禁用root登录,您可以找到默认文件:

/etc/default/dropbear

其内容:

# Disallow root logins by default
DROPBEAR_EXTRA_ARGS="-w"

因此,我删除了"-w";选项,我运行:

/etc/init.d/dropbear restart

我成功登录了dropbear ssh服务器。

此外,您可以将其自动添加到您的自定义层:

meta-custom/
--> recipes-core/
--> dropbear/
--> dropbear_%.bbappend

dropbear_%.bbappend

do_install_append(){
sed -i 's/-w//g' ${D}/etc/default/dropbear
}

相关内容

最新更新