当前位置: 首页 > news >正文

关于dropbear ssh服务

今儿一早收到现场项目经理反馈,用户服务器上检查sshd服务时,显式如下:

导致,多项合规检查项不合规。要求,我司进行兼容性适配。

俗话说得好,知己知彼百战不殆。先了解一下Dropbear是个什么东东。

通过了解和试用,给现场的建议是:改回openssh,不要使用dropbear。

Dropbear简介

Dropbear是一个小型的SSH服务器和客户端,它被设计为在资源受限的环境中运行,比如嵌入式设备或容器等。它具有以下特点:

轻量级

  • 占用资源少:与OpenSSH等更全面的SSH实现相比,Dropbear体积更小、内存占用更低。这使得它非常适合在资源有限的设备上运行,例如某些物联网设备、路由器或其他嵌入式系统,这些设备通常没有足够的资源来运行更大型的SSH服务器。

  • 易于集成:由于其小巧的体积和较低的依赖性,Dropbear易于集成到各种嵌入式系统和专用应用程序中,方便开发人员在这些受限环境中添加SSH功能。

功能相对简单

  • 核心功能支持:它支持SSH的基本功能,包括安全的远程登录、密钥认证和数据加密传输等,能够满足大多数基本的远程访问和管理需求。

  • 部分高级功能缺失:与OpenSSH相比,它缺少一些高级功能,如对某些加密算法或认证方式的支持可能不够全面,以及缺乏对SFTP等协议的完整支持等。

配置和使用相对简单

  • 配置简便:它的配置文件相对简单,易于理解和修改,对于熟悉SSH基本概念的用户来说,可以快速地进行配置以满足基本的使用需求。

  • 启动和运行方便:在许多嵌入式系统或特定的Linux发行版中,Dropbear可以很方便地被集成和启动,且通常不需要复杂的初始化或依赖配置。

常见应用场景

  • 嵌入式设备管理:常用于嵌入式设备,如路由器、防火墙、物联网设备等,为这些设备提供安全的远程管理接口。

  • 容器环境:在某些轻量级容器镜像中,为了减小镜像体积,可能会使用Dropbear来提供SSH访问功能。

  • 临时或应急使用:在需要快速搭建一个简单的SSH服务器进行临时的远程访问或测试时,Dropbear也是一个不错的选择。

搭建Dropbear

github官网:https://github.com/mkj/dropbear/blob/master/INSTALL.md

官网地址:https://matt.ucc.asn.au/dropbear/dropbear.html

可以根据官网搭建说明,通过源码安装最新版,也可以通过YUM镜像源在线安装(版本偏旧)

1、检查yum镜像源是否存在Dropbear

~]# yum list |grep dropbear  
dropbear.x86_64                                                        2018.76-3.fc29                                                  @fedora

2、使用yum安装

yum -y install dropbear

3、配置dropbear

dropbear不像openssh一样,存在/etc/ssh/sshd_config配置文件。它P都没有,如果要进行配置,只能通过命令参数:

~]# dropbear -h
Dropbear server v2018.76 https://matt.ucc.asn.au/dropbear/dropbear.html
Usage: dropbear [options]
-b bannerfile   Display the contents of bannerfile before user login
                (default: none)
-r keyfile  Specify hostkeys (repeatable)
                defaults: 
                dss /etc/dropbear/dropbear_dss_host_key
                rsa /etc/dropbear/dropbear_rsa_host_key
                ecdsa /etc/dropbear/dropbear_ecdsa_host_key
-R              Create hostkeys as required
-F              Don't fork into background
-E              Log to stderr rather than syslog
-w              Disallow root logins
-G              Restrict logins to members of specified group
-s              Disable password logins
-g              Disable password logins for root
-B              Allow blank password logins
-T              Maximum authentication tries (default 10)
-j              Disable local port forwarding
-k              Disable remote port forwarding
-a              Allow connections to forwarded ports from any host
-c command      Force executed command
-p [address:]port
                Listen on specified tcp port (and optionally address),
                up to 10 can be specified
                (default port is 22 if none specified)
-P PidFile      Create pid file PidFile
                (default /var/run/dropbear.pid)
-i              Start for inetd
-W <receive_window_buffer> (default 24576, larger may be faster, max 1MB)
-K <keepalive>  (0 is never, default 0, in seconds)
-I <idle_timeout>  (0 is never, default 0, in seconds)
-V    Version

具体参数都是干嘛的,我就不解释了,直接看就行。

配置举例:

a) 查看dropbear.service可知,通过/etc/sysconfig/dropbear传参

~]# systemctl cat dropbear
# /usr/lib/systemd/system/dropbear.service
[Unit]
Description=Dropbear SSH Server Daemon
Documentation=man:dropbear(8)
Wants=dropbear-keygen.service
After=network.target

[Service]
EnvironmentFile=-/etc/sysconfig/dropbear
ExecStart=/usr/sbin/dropbear -E -F $OPTIONS

[Install]
WantedBy=multi-user.target

b) 配置/etc/sysconfig/dropbear,修改banner和默认端口号,禁止root登录

~]# cat /etc/sysconfig/dropbear
OPTIONS="-b /etc/issue.net -p 4022 -w"

4、创建dropbear使用的keyfile

默认情况下,只有如下两个keyfile:

/etc/dropbear/dropbear_dss_host_key

/etc/dropbear/dropbear_rsa_host_key

需要额外创建ecdsa:

dropbearkey -t ecdsa -f dropbear_ecdsa_host_key

然后,重启dropbear。

5、 从openssh切换到dropbear

a) dropbear一切都准备妥当之后,停止openssh:

systemctl stop sshd

b)启动dropbear

systemctl start dropbear

c)设置dropbear开机自启动和取消openssh开机自启动

systemctl enable dropbear

sysemctl disable sshd

后记

openssh自带了sftp,可以通过sftp子服务上传下载文件;dropbear没有哦

openssh具备会话保持功能。当openssh守护进程挂掉之后,已有会话仍然可以保持,我们可以据此解决故障。但是,dropbear没有哦

http://www.lqws.cn/news/188245.html

相关文章:

  • MySQL基本操作
  • 构建SDK-C Docker镜像
  • 服务器中日志分析的作用都有哪些
  • Spring整合MyBatis的两种方式
  • 二分算法
  • 【免杀】C2免杀技术(十六)反沙箱/反调试
  • 【Linux】sed 命令详解及使用样例:流式文本编辑器
  • LLMControlsArm开源程序是DeepSeek 控制熊猫机械臂
  • react public/index.html文件使用env里面的变量
  • for(;;) 和while(1) 的无限循环用法对比,优缺点说明
  • Gerrit+repo管理git仓库,如果本地有新分支不能执行repo sync来同步远程所有修改,会报错
  • 【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
  • (nice!!!)(LeetCode每日一题)2434. 使用机器人打印字典序最小的字符串(贪心+栈)
  • 如何防止误删除rm (万恶之源)
  • 第二十九章 读写内部FLASH
  • 国产PC系统
  • S5P6818_驱动篇(24)UART驱动
  • 通过中脑刺激相关神经回路的纤维微解剖建立连接性
  • JavaSec-SPEL - 表达式注入
  • 山东大学《数据可视化》期末复习宝典
  • 怎么让大语言模型(LLMs)自动生成和优化提示词:APE
  • 在Markdown中使用MathType插入公式
  • next,react封装axios,http请求
  • Webhook 配置备忘
  • 浏览器工作原理06 [#]渲染流程(下):HTML、CSS和JavaScript是如何变成页面的
  • 基于Selenium+Python的web自动化测试框架
  • C++.OpenGL (3/64)着色器(Shader)深入
  • ceph 脚本,用于计算 rbd 文件存放 OSD 方法
  • 在UI界面内修改了对象名,在#include “ui_mainwindow.h“没更新
  • MySQL 索引优化(Explain执行计划) 详细讲解