"); //-->

狠狠做深爱婷婷久久一区,欧美日韩国内,久久麻豆精品传媒,久久久一区一区二区,色鬼伦理片,99视频精品久久,久久精品国产久久久久久,久久久伦理电影一区二,磁力天堂河北彩花

專欄中心

EEPW首頁(yè) > 專欄 > 嵌入式Linux下Dropbear SSH配置優(yōu)化

嵌入式Linux下Dropbear SSH配置優(yōu)化

發(fā)布人:toradex 時(shí)間:2023-05-31 來(lái)源:工程師 發(fā)布文章

By Toradex秦海

1). 簡(jiǎn)介

嵌入式 Linux  由于運(yùn)行平臺(tái)通常資源受限同時(shí)對(duì)穩(wěn)定性要求高,因此需要比較精簡(jiǎn),那么針對(duì) SSH 服務(wù)器/客戶端應(yīng)用,通常也不使用龐大的 OpenSSH,而是采用十分精簡(jiǎn)的 Dropbear SSH工具。Dropbear 是一個(gè)基于 MIT License 的開(kāi)源軟件,其一些基本信息可以參考如下軟件發(fā)布頁(yè)面:

https://matt.ucc.asn.au/dropbear/dropbear.html

 

本文所演示的平臺(tái)來(lái)自于Toradex Apalis iMX8 嵌入式平臺(tái),基于 NXP iMX8 系列 ARM 處理器,核心為 Cortex-A52/A53 。

 

 

2). 硬件準(zhǔn)備

a).  Apalis iMX8 ARM 核心版配合 Apalis Eva Board 載板,并連接調(diào)試串口和網(wǎng)口以便測(cè)試。

 

 

3). 具體配置說(shuō)明

a). Apalis iMX8 模塊標(biāo)準(zhǔn) Ycoto Linux BSP 中已經(jīng)包含 Dropbear 相關(guān)軟件,不過(guò)由于默認(rèn)配置為了開(kāi)發(fā)測(cè)試方便,默認(rèn)使能了 debug-tweaks 功能(比如這樣可以允許 root 賬戶無(wú)密碼登錄),這樣如下面 Ycoto Project/Openembedded 相關(guān)文件說(shuō)明也就同時(shí)也使能了 weak ciphers

 

./ layers/meta-toradex-demos/recipes-core/dropbear/dropbear_%.bbappend

---------------------------------------

# THE Eclipse RSE system explorer uses a ssh client which cannot cope with the

# dropbear ssh server if weak ciphers are disabled.

# If debug-tweaks is set in IMAGE_FEATURES then enable also weak ciphers.

# With debug-tweaks we allow password less root access, enforcing strong

# ciphers is pointless anyway.

PACKAGECONFIG = "${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", "", "disable-weak-ciphers",d)}"

---------------------------------------

 

b). 為了使 Dropbear SSH安全性更高,可以在 Ycoto 編譯環(huán)境下參考如下 patch 文件修改關(guān)閉 debug-tweaks weak ciphers。因?yàn)橥瑫r(shí)這樣也關(guān)閉了 root 用戶無(wú)密碼登錄,因此也需要給 root 用戶配置默認(rèn)密碼。

./ local.conf 文件修改 patch

---------------------------------------

--- a/build/conf/local.conf 2023-05-30 12:16:33.780891419 +0800

+++ b/build/conf/local.conf 2023-05-31 10:55:36.841801362 +0800

@@ -277,3 +277,9 @@

 include conf/machine/include/${MACHINE}.inc

 

 # DO NOT SET THE MACHINE AFTER THE ABOVE INCLUDE

+# accept the Freescale EULA

+ACCEPT_FSL_EULA = "1"

+# add root password

+EXTRA_IMAGE_FEATURES = "allow-root-login package-management"

+INHERIT += "extrausers"

+EXTRA_USERS_PARAMS = "usermod -P Abcd1234 root"

---------------------------------------

 

./ 參考這里的說(shuō)明將上述修改下重新編譯生成的 Ycoto Linux Image 通過(guò) Toradex Easy Installer 更新到 Apalis iMX8 模塊,此時(shí)測(cè)試無(wú)論本地串口登錄還是遠(yuǎn)程SSH登錄 root 用戶都需要輸入預(yù)設(shè)的密碼了,增強(qiáng)了安全性。

 

c). 為了進(jìn)一步提高 SSH 安全性,可以創(chuàng)建普通 user 用戶用于遠(yuǎn)程登錄,而禁止 root 用戶 SSH 遠(yuǎn)程登錄。這樣也可以通過(guò)限制 user 用戶的權(quán)限來(lái)提高系統(tǒng)安全性。

./ 創(chuàng)建新的 user 用戶

---------------------------------------

root@apalis-imx8-07308034:~# useradd testuser

root@apalis-imx8-07308034:~# passwd testuser

New password:

Retype new password:

passwd: password updated successfully

---------------------------------------

 

./ 禁止 root 用戶 SSH 登錄,參考如下 patch 修改 /etc/default/dropbear 文件

---------------------------------------

--- a/etc/default/dropbear

+++ b/etc/default/dropbear

@@ -1,2 +1,2 @@

 # Disallow root logins by default

-DROPBEAR_EXTRA_ARGS=""

+DROPBEAR_EXTRA_ARGS=" -w"

---------------------------------------

 

./ 測(cè)試使用 testuser 用戶遠(yuǎn)程 SSH 登錄成功, root 用戶登錄失效

---------------------------------------

### root login ###

$ ssh root@10.20.1.168

root@10.20.1.168's password:

Permission denied, please try again.

### testuser login ###

$ ssh testuser@10.20.1.168

testuser@10.20.1.168's password:

mkdir: cannot create directory '/run/user/1000': Permission denied

chmod: cannot access '/run/user/1000': No such file or directory

apalis-imx8-07308034:~$

---------------------------------------

 

./ 另外,如果需要本地串口 testuser 或者 root 用戶自動(dòng)登錄,可以參考如下 patch 修改

---------------------------------------

--- a/lib/systemd/system/serial-getty@.service

+++ b/lib/systemd/system/serial-getty@.service

@@ -30,7 +30,7 @@

 

 [Service]

 Environment="TERM=xterm"

-ExecStart=-/sbin/agetty -8 -L %I 115200 $TERM

+ExecStart=-/sbin/agetty -8 -a testuser -L %I 115200 $TERM

 Type=idle

 Restart=always

 UtmpIdentifier=%I

---------------------------------------

 

d). 遠(yuǎn)程 SSH 除了默認(rèn)的密碼登錄方式外,還可以開(kāi)啟安全等級(jí)更高的通過(guò) public key 來(lái)無(wú)密碼登錄

./ 在需要遠(yuǎn)程登錄 Apalis iMX8 設(shè)備的 PC 主機(jī)環(huán)境下通過(guò) ssh-keygen 工具生成 SSH private key/public key pair

---------------------------------------

### generate 4096-bits key pair ###

$ ssh-keygen -b 4096

Generating public/private rsa key pair.

Enter file in which to save the key (/home/simon/.ssh/id_rsa): /home/simon/local/tmp/ssh-test/id_rsa

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/simon/local/tmp/ssh-test/id_rsa.

Your public key has been saved in /home/simon/local/tmp/ssh-test/id_rsa.pub.

The key fingerprint is:

SHA256:Pr5PQjzRuPMVS3Rrkdtq+7pDVOFMGumBLpFGkjGSEs0 simon@simon-Latitude-5300

The key's randomart image is:

+---[RSA 4096]----+

|   .+..++.. o.++.|

|   . E..o* o +Bo.|

|    .   + + +.+* |

|       . + o =o .|

|        S . o. . |

|       o + .  +  |

|        + o  o . |

|       . +    o  |

|        oo.   o=.|

+----[SHA256]-----+

---------------------------------------

 

./ 通過(guò) SSH 遠(yuǎn)程命令將生成的 public key 寫入到 Apalis iMX8 dropbear authorized_keys 文件

---------------------------------------

### create ssh folder on apalis iMX8 device ###

apalis-imx8-07308034:~$ mkdir /home/testuser/.ssh

### add public key to apalis iMX8 authorized_keys file from Host PC remotely ###

$ ssh testuser@10.20.1.168 "tee -a /home/testuser/.ssh/authorized_keys" < /home/simon/local/tmp/ssh-test/id_rsa.pub

---------------------------------------

 

./ 參考如下 patch 修改 Apalis iMX8 dropbear 啟動(dòng)配置來(lái)使 public key 驗(yàn)證生效

---------------------------------------

--- a/lib/systemd/system/dropbear@.service

+++ b/lib/systemd/system/dropbear@.service

@@ -4,9 +4,9 @@

 After=syslog.target dropbearkey.service

 

 [Service]

-Environment="DROPBEAR_RSAKEY_DIR=/etc/dropbear"

+Environment="DROPBEAR_RSAKEY_DIR=/home/testuser/.ssh/"

 EnvironmentFile=-/etc/default/dropbear

-ExecStart=-/usr/sbin/dropbear -i -r ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key $DROPBEAR

_EXTRA_ARGS

+ExecStart=-/usr/sbin/dropbear -i $DROPBEAR_EXTRA_ARGS

 ExecReload=/bin/kill -HUP $MAINPID

 StandardInput=socket

 KillMode=process

---------------------------------------

 

./ 重啟 Apalis iMX8 使配置生效后,再次嘗試遠(yuǎn)程 SSH 登錄,可以實(shí)現(xiàn)無(wú)需密碼而是采用 public key 驗(yàn)證登錄

---------------------------------------

$ ssh -i /home/simon/local/tmp/ssh-test/id_rsa testuser@10.20.1.168

mkdir: cannot create directory '/run/user/1000': Permission denied

chmod: cannot access '/run/user/1000': No such file or directory

apalis-imx8-07308034:~$

---------------------------------------

 

e). 更多關(guān)于 dropbear 工具命令參數(shù)說(shuō)明可以參考如下

https://manpages.ubuntu.com/manpages/bionic/man8/dropbear.8.html

 

 

4). 總結(jié)

本文基于嵌入式 Linux 簡(jiǎn)單演示了 輕量化 SSH 工具軟件 Dropbear 的增強(qiáng)安全性配置供參考。


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。

關(guān)鍵詞: ARM Linux SSH Dropbear NXP iMX8 Toradex Apalis

相關(guān)推薦

Arm與Linaro聯(lián)合發(fā)起行業(yè)聯(lián)盟 CoreCollective

Arm AGI CPU:智能體式人工智能云時(shí)代的芯片基石

ARM嵌入式系統(tǒng)開(kāi)發(fā):軟件設(shè)計(jì)與優(yōu)化

ARM嵌入式系統(tǒng)開(kāi)發(fā)

Arm再創(chuàng)季度營(yíng)收紀(jì)錄

EDA/PCB 2026-02-09

Arm自研芯片掀「跨界戰(zhàn)爭(zhēng)」 臺(tái)積電旗下創(chuàng)意恐首當(dāng)其沖

最新ARM技術(shù)和嵌入式技術(shù)發(fā)展動(dòng)態(tài) 下

視頻 2009-10-22

WinCE+ARM開(kāi)發(fā)及關(guān)鍵技術(shù) 下

視頻 2009-10-22

最新ARM技術(shù)和嵌入式技術(shù)發(fā)展動(dòng)態(tài) 中

視頻 2009-10-22

康佳特推出首款 Arm 架構(gòu) SMARC 模塊

ARM 展示小型低功耗上網(wǎng)本樣品

視頻 2009-03-16

天勢(shì)科技與Arm戰(zhàn)略合作,為人工智能驅(qū)動(dòng)的個(gè)人 “智能自動(dòng)駕駛汽車” 提供技術(shù)支持

NXP 發(fā)布eIQ代理AI框架,實(shí)現(xiàn)安全邊緣自治

arm學(xué)習(xí)資料

摩爾線程推出ARM架構(gòu)SoC“長(zhǎng)江” 進(jìn)軍筆記本芯片市場(chǎng)

ARM開(kāi)發(fā)詳解

WinCE+ARM開(kāi)發(fā)及關(guān)鍵技術(shù) 上

視頻 2009-10-22

ARM嵌入式軟件編程經(jīng)驗(yàn)談

OSM模塊由NXP i.MX 95驅(qū)動(dòng),用于邊緣 AI

Arm重磅推出AGI CPU 1OU 雙節(jié)點(diǎn)參考服務(wù)器

更多 培訓(xùn)課堂
更多 焦點(diǎn)
更多 視頻

技術(shù)專區(qū)

石家庄市| 襄汾县| 蚌埠市| 普兰店市| 临沧市| 江安县| 于田县| 杨浦区| 星座| 凤阳县| 集贤县| 保康县| 庆元县| 马鞍山市| 大厂| 新田县| 安康市| 富源县| 嘉义市| 昌都县| 清涧县| 宜宾市| 洛宁县| 长白| 东城区| 湘乡市| 报价| 九台市| 滕州市| 南丰县| 历史| 宁蒗| 同德县| 嵩明县| 鄯善县| 靖安县| 平原县| 滦平县| 临安市| 云和县| 陈巴尔虎旗|