【问题标题】:sshd_config does not get overwritten via Yocto meta-layer and hence cannot connect to boardsshd_config 不会被 Yocto 元层覆盖,因此无法连接到板
【发布时间】:2020-09-17 16:20:40
【问题描述】:

系统

  • 硬件:PHYTEC PHYBOARD-Mira Board
  • 处理器:NXP i.MX6 Quad
  • Yocto/OE 分公司:warrior

初始步骤

  1. 我有一个名为meta-mylayer 的自定义层,我希望在其中更改我在硬件上带来的图像。 meta-yogurt 层由 Phytec 提供,由他们的应用程序和其他板相关软件组成。

  2. 在我的图层中,我有以下密码配方:

    # meta-mylayer/recipe-images/images/phytec-headless-image.bbappend
    inherit extrausers
    EXTRA_USERS_PARAMS = "usermod -P yocto2020 root;"
    

执行bitbake -k phytec-headless-image 并通过串行电缆连接电路板后,我可以使用root:yocto2020 凭据登录电路板,但是在ssh -l root <StaticIPBoard> 时,我一直被拒绝访问。

基于此toradex forum thread,我在所有元图层所在的目录中执行以下命令:

find . -name "*sshd_config*"

结果如下:

./meta-yogurt/recipes-connectivity/openssh/openssh/sshd_config
./poky/meta/recipes-connectivity/openssh/openssh/sshd_config

因此我从meta-yogurt 层复制sshd_config 并取消注释以下两行:

AllowRootLogin Yes
PasswordAuthentication Yes

我的层中配方的结构如下:

meta-mylayer/recipes-connectivity/
└── openssh
    ├── openssh
    │   └── sshd_config # uncommented the necessary lines
    └── openssh_%.bbappend

openssh_%.bbappend文件内容如下:

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"

图层已经在$BUILDDIR/conf/bblayers.conf 中,所以我继续使用bitbake -k phytec-headless-image 并将图像加载到板上。

ssh -v -l root <STATICIP> 命令抛出以下错误:

$ ssh -v -l root 192.168.3.11
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.3.11 [192.168.3.11] port 22.
debug1: Connection established.
debug1: identity file /home/des/.ssh/id_rsa type 1
debug1: identity file /home/des/.ssh/id_rsa-cert type -1
debug1: identity file /home/des/.ssh/id_dsa type -1
debug1: identity file /home/des/.ssh/id_dsa-cert type -1
debug1: identity file /home/des/.ssh/id_ecdsa type -1
debug1: identity file /home/des/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/des/.ssh/id_ed25519 type -1
debug1: identity file /home/des/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.13
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.9
debug1: match: OpenSSH_7.9 pat OpenSSH* compat 0x04000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-sha1-etm@openssh.com none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 82:25:3c:5a:49:5e:61:ba:7c:0d:6b:b9:1d:78:9c:7c
debug1: Host '192.168.3.11' is known and matches the ECDSA host key.
debug1: Found key in /home/des/.ssh/known_hosts:46
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/des/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/des/.ssh/id_dsa
debug1: Trying private key: /home/des/.ssh/id_ecdsa
debug1: Trying private key: /home/des/.ssh/id_ed25519
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: password
root@192.168.3.11's password:
debug1: Authentications that can continue: publickey,password,keyboard-interactive
Permission denied, please try again.

sshd_config文件

我通过串行端口在板上

cat /etc/ssh/sshd_config | grep -i "rootlogin"

AllowRootLogin 选项仍被注释掉!

其他选择

我尝试了devtool modify openssh 并编辑了sshd_config 并使用SRC_URI_append 向我的图层添加了补丁,结果仍然相同。

P.S.local.confEXTRA_IMAGE_FEATURES += "debug-tweaks"被注释掉了。

问题

为了通过 SSH 在我的 Yocto 层中使用密码设置为 root 的用户访问开发板需要做什么?

【问题讨论】:

    标签: ssh yocto openembedded


    【解决方案1】:

    问题是EXTRA_IMAGE_FEATURES += "debug-tweaks"。我提到它在conf/local.conf中被注释掉了。

    解决方案是取消注释以使效果生效。

    之前

    conf/local.conf
    
    
    #EXTRA_IMAGE_FEATURES += "debug-tweaks"
    

    之后

    EXTRA_IMAGE_FEATURES += "debug-tweaks"
    

    然后使用bitbake -k phytec-headless-imagessh -l root <STATICIP> 构建一个新镜像,并使用密码登录

    【讨论】:

      猜你喜欢
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      • 1970-01-01
      • 2018-08-10
      相关资源
      最近更新 更多