Linux系统裁剪笔记之五dropbear嵌入式系统专用ssh远程登录服务

1.什么裁剪?

本篇文章的主要目的是让笔者和读者更深的认识Linux系统的运作方式,大致内容就是把Linux拆开自己一个个组件来组装,然后完成一个微型的Linux系统.下面,让我们来实现吧..写的不好的地方请指教.

2.原理

大家都知道,操作系统的启动流程是(主要是Linux):POST—>BIOS—>MBR—kernel-->initrd-->sbin/init,

POST,BIOS都不是我们管的,所以这里我们从MBR开始,Linux的系统引导先主要是用的grub这个软件,grub引导系统了,然后启动内核,内核调用initrd来实现最基本的操作系统.

3.实验目的(给精简linux增加ssh服务应用) 

前期准备:已经安装制作了一个精简的linux系统

在宿主虚拟机添加IDE硬盘,并分2个分区,并挂载:

mount /dev/hda1 /mnt/boot

mount /dev/hda2 /mnt/sysroot

dropbear:嵌入式系统专用的ssh服务器端和客户端工具

服务器端:dropbear     dropbearkey

客户端:dbclient

dropbear默认使用nsswitch实现名称解析

/etc/nsswitch.conf

/lib/libnss_files*

/usr/lib/libnss3.so

/usr/lib/libnss_files*

dropbear会在用户登录检查其默认shell是否当前系统的安全shell

/etc/shells

主机密钥默认位置:

/etc/dropbear/

RSA:dropbear_rsa_host_key  (RSA加密方式)

长度可变,只要是8的整数倍,默认为1024

DSS:dropbear_dss_host_key   (DSS加密方式)

长度固定,默认为1024

dropbearkey 生成密钥命令

-t rsa|dss   指定密钥类型

-f /path/to/KEY_FILE  指定生成的密钥保存位置

-s SIZE  指定生成密钥的字节大小

 实现ssh远程登录服务的步骤如下:

 1、先下载dropbear-2013.56.tar.bz2

[root@localhost ~]# lftp test@10.109.134.247  登录ftp服务器

口令:

lftp test@10.109.134.247:/> get dropbear-2013.56.tar.bz2 下载dropber软件

1578454 bytes transferred

lftp test@10.109.134.247:/> exit

[root@localhost ~]# ls

anaconda-ks.cfg   Desktop   install.log   sbin   bin   sys  lib   dev

install.log.syslog    showdate.sh   busybox-1.20.2    dropbear-2013.56.tar.bz2

[root@localhost ~]# tar xf dropbear-2013.56.tar.bz2   解压缩安装包

[root@localhost ~]# cd dropbear-2013.56   进入解压缩目录

[root@localhost dropbear-2013.56]#./configure   编译前生成makefile

[root@localhost dropbear-2013.56]#make   编译

[root@localhost dropbear-2013.56]# make install  编译安装

install -d -m 755 /usr/local/sbin

install -m 755 dropbear /usr/local/sbin

chown root /usr/local/sbin/dropbear

chgrp 0 /usr/local/sbin/dropbear

install -d -m 755 /usr/local/bin

install -m 755 dbclient /usr/local/bin

chown root /usr/local/bin/dbclient

chgrp 0 /usr/local/bin/dbclient

install -d -m 755 /usr/local/bin

install -m 755 dropbearkey /usr/local/bin

chown root /usr/local/bin/dropbearkey

chgrp 0 /usr/local/bin/dropbearkey

install -d -m 755 /usr/local/bin

install -m 755 dropbearconvert /usr/local/bin

chown root /usr/local/bin/dropbearconvert

chgrp 0 /usr/local/bin/dropbearconvert

[root@localhost dropbear-2013.56]# cd ~   进入到家目录,该目录有复制binlib脚本

[root@localhost ~]# ./cpbin.sh    执行复制库命令脚本,复制dropbear所需的三个文档

dropbear  dbclient  dropbearkey

Your command:dropbear

copy /usr/local/sbin/dropbear is finished.

copy lib /lib64/libcrypt.so.1 finished.

copy lib /lib64/libutil.so.1 finished.

copy lib /usr/lib64/libz.so.1 finished.

copy /usr/local/sbin/dropbear finished.

Continue: dbclient

copy /usr/local/bin/dbclient is finished.

copy /usr/local/bin/dbclient finished.

Continue: dropbearkey

copy /usr/local/bin/dropbearkey is finished.

copy /usr/local/bin/dropbearkey finished.

Continue: q

[root@localhost ~]# sync

[root@localhost ~]# sync

[root@localhost ~]# cd /mnt/sysroot   进入到系统挂载的根目录

[root@localhost sysroot]# vim etc/shells  新建shell文档

/bin/sh

/bin/bash

/bin/ash

/bin/hush

[root@localhost sysroot]# vim etc/fstab  编辑fstab文档

sysfs       /sys         sysfs        defaults       0 0

proc       /proc         proc         defaults       0 0

devpts      /dev/pts      devpts        mode=620       0 0  新增改行内容

/dev/hda1    /boot        ext3         defaults       0 0

/dev/hda2    /           ext3         defaults       1 1

[root@localhost sysroot]# mkdir dev/pts   新建pts目录

[root@localhost sysroot]# sync

[root@localhost sysroot]# sync

[root@localhost sysroot]# mkdir etc/dropbear

[root@localhost sysroot]# dropbearkey -t rsa -f /mnt/sysroot/etc/dropbear

/drobear_rsa_host_key -s 2048  指定密钥类型为rsa并生成密钥存储在指定目录中

Will output 2048 bit rsa secret key to '/mnt/sysroot/etc/dropbear/dropbear_rsa_host_key'

Generating key, this may take a while...

Public key portion is:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAwCkisXjhRaNz1oHo4XbFR6LHGHx7rtk8CVGJ263h5UBWUtmoo/fVZK/x8ZvzJQiDJn3sQjxH9DT41wpFnu79Z1h2Fmfq0YSmRVc0jxlYGfJWScIbspkFF89kGa0z+PuqD1lEbbrzCQ8lfzqNS7CYA3OOZKlLxfGQbev7KGMqvaHOkorEHP7D27nIug1Ftm5DWqax3lIOfL5r5fdMMMVjVQvRM8ZXV7RiXZKnHeMJhkLcB4dbkZy1mktEjTd43tDUSf+Knz/oz0sEt1eNxSCoqf20Q62syJIWJhE3ZTTBdvrKhhoiEOP8UScgH88AogkQgONL7srCxZ0dCCFOIDZc+6q4Rc= root@localhost.localdomain

Fingerprint: md5 03:df:ce:13:9c:72:98:4c:56:10:77:21:2d:de:1f:6b

[root@localhost sysroot]# dropbearkey -t dss -f /mnt/sysroot/etc/dropbear

/drobear_dss_host_key   指定密钥类型为dss并生成密钥存储在指定目录中

Will output 1024 bit dss secret key to '/mnt/sysroot/etc/dropbear/dropbear_dss_host_key'

Generating key, this may take a while...

Public key portion is:

ssh-dss AAAAB3NzaC1kc3MAAACBAMgEVlFM0PqJxvTC4pqYue+3K+i08oaEQ/1LWHlg+ZizypeNj55dnMsIo2vjcYsDaBiXLj9iFH8mAfAiI7NEi9pl61y2LlLRvFuY2C1b2tb5i4fzWJ0f4bAbOUl7ETmjXtq2OHBauyrho+kAomvmoeub30oog0LSYoB91KhM5bQ/AAAAFQCPOzSbxoRJkfMdIPQiNlZ59oClVwAAAIBqHmhRS1C7CnkU3v0RAZzyyPqdaar6e6FV1fG8D/kS3wxedFH61PFPlNut7Y3qa3HTcuewal+yZChouKpVhSxMsRbdc+6qyiMxeO7nNKZbIzYa4+XvZTCBY71H8no0J4B+4t205w0ymMCnvFOH51yEdbQ9rCIdiIG5imufZHNwQgAAAIBH4AlrTagsMMzW5Lb0caXsXj0kodhckCKECWVVc7aP+x9ypKAyp1SSVkbzAvv8aSSlW4/V9OMxEq74hTT04Lp8Bh7Mng7YoFA1TMuaAP3MtBfcpOLy39mIFpniiQuk0loWfRwkhmjzxA+Z+J6GqoUjWr09st3ftQF0tgYAa6F+IA== root@localhost.localdomain

Fingerprint: md5 9f:b0:e3:8f:71:c4:ca:89:90:97:7f:a5:f1:48:dc:bf

[root@localhost sysroot]# ls etc/dropbear/

dropbear_dss_host_key  dropbear_rsa_host_key     两种类型的密钥已生成

[root@localhost sysroot]# mkdir usr/lib

[root@localhost sysroot]# ls usr/

bin  lib  lib64  local  sbin

[root@localhost sysroot]# pwd

/mnt/sysroot

[root@localhost sysroot]# cd ~

[root@localhost ~]# cp -d /lib/libnss_files* /mnt/sysroot/lib/ 复制密钥所需的库文件

[root@localhost ~]# cp -d /usr/lib/libnss3.so /usr/lib/libnss_files.so /mnt/sysroot/usr/lib/   复制密钥所需库文件,路径要对应

[root@localhost ~]# ls /mnt/sysroot/lib

libnss_files-2.5.so  libnss_files.so.2  modules

[root@localhost ~]# ls -l /mnt/sysroot/usr/lib

总计 1176

-rwxr-xr-x 1 root root 1188804 12-21 06:44 libnss3.so

lrwxrwxrwx 1 root root      27 12-21 06:44 libnss_files.so -> ../../lib/libnss_files.so.2

[root@localhost ~]# cp /etc/nsswitch.conf  /mnt/sysroot/etc/ 复制配置文件

[root@localhost ~]# vim /mnt/sysroot/etc/nsswitch.conf  编辑配置文件,只需保留以下四行即可

passwd:      files

shadow:      files

group:       files

hosts:       files dns

[root@localhost ~]# sync  把数据同步写入至硬盘

转载于:https://blog.51cto.com/woyaoxuelinux/1884603

linux命令:系统裁剪之五dropbear嵌入式系统专用ssh服务相关推荐

  1. 嵌入式系统,嵌入式系统定义和使用,嵌入式系统和桌面通用系统的区别,嵌入式系统结构组成,嵌入式软件组成

    嵌入式系统定义和使用,嵌入式系统和桌面通用系统的区别,嵌入式系统结构组成,嵌入式软件组成 嵌入式系统定义和使用 一.嵌入式系统 1.定义:用于控制.监视或者辅助操作机器和设备的装置,嵌入式系统的前提是 ...

  2. 怎样永久更改嵌入式linux系统ip,如何修改嵌入式系统IP

    如何修改嵌入式系统IP (2012-06-05 01:36:56) 标签: 嵌入式 如何 杂谈 如何修改嵌入式系统IP我的嵌入式设备的根文件系统是用busybox作的,现在我想在程序里面更改它的IP地 ...

  3. 嵌入式linux智能小车ppt,基于FPGA嵌入式系统的智能小车全面解析

    前言 传统智能小车,特别是嵌入式系统,一般都是基于单片机或者ARM的嵌入式系统,基本上都由软件系统和硬件系统组成的,硬件系统方面,跟传统的搭建硬件环境一样,只能做相对裁剪和功能拓展,但是,本项目的课题 ...

  4. 嵌入式系统linux开发流程,嵌入式系统的定义及嵌入式系统的开发流程

    描述 1.嵌入式系统的定义 以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能.可靠性.成本.体积.功耗的严格要求的专用计算机系统. 2.嵌入式系统的组成 硬件部分:嵌入式微处理器. ...

  5. 监护仪系统都是Linux吗,基于Linux和MiniGUI的心电监护仪设计-嵌入式系统-与非网...

    0 引言 随着人们生活节奏加快,人口逐渐老龄化,心脏疾病成为危害人类健康和生命的主要疾病之一.心电监护系统为心脏病人诊断和治疗提供了一个有效的手段,对心脏疾病的防治和诊断具有重大的意义,本介绍一种基于 ...

  6. linux filo顺序是什么意思,嵌入式系统复习 南京邮电大学 期末复习 答案 提纲

    1.嵌入式系统定义p1 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积和功耗等严格要求的专用计算机系统. 2.嵌入式系统的组成结构,层次关系p4.板 ...

  7. 嵌入式系统的概念,嵌入式系统的组成及特点,嵌入式系统的基本开发流程

    1. 嵌入式系统的概念   嵌入式系统( Embedded system) , 是一种 "完全嵌入受控器件内部,为特定应用而设计的专用计算机系统"以应用为中心,以计算机技术为基础, ...

  8. 嵌入式计算机系统简述,嵌入式系统定义_简述嵌入式系统的定义和组成

    1.嵌入式系统定义:以应用为中心,计算机技术为基础,软硬件可剪裁,适应应用系统对功能,成本,体积,可靠性,功耗严格要求的计算机系统. 2.嵌入式系统的三个基本要素:嵌入性,专用性,计算机系统 3.嵌入 ...

  9. 【树莓派学习笔记】一、烧录系统、(无屏幕)配置Wifi和SSH服务

    目录 系统镜像的准备 格式化TF卡 烧录镜像 配置Wifi 开启SSH服务 第一次开机 平台:树莓派3B 版本: 2021-05-07-raspios-buster-armhf 系统镜像的准备 树莓派 ...

最新文章

  1. 数据结构——线性结构
  2. UIImage的scale
  3. 用TableView写带特效的cell
  4. 在.NET环境下将报表导出Excel和Word
  5. vscode如何找letax模板_一直努力却找不到变美思路?韩国新一代「整容模板」,教你如何提高美商、科学变美!...
  6. 使用gPXE网络启动引导ISO和安装ESXi5
  7. mysql master master_MySQL主从架构之Master-Master互为主备
  8. java.io.NotSerializableException: org.apache.shiro.util.SimpleByteSource at java.io.ObjectOutputStr
  9. OpenCASCADE:STEP翻译器的介绍
  10. HDU 1010 Tempter of the Bone DFS(奇偶剪枝优化)
  11. hexo博客修改博文中日期的颜色
  12. Git分支操作与远程仓库的使用
  13. 无源的nfc加传感_基于ON Semiconductor SPS无源温度标签,应用于冷链运输的 UHF 标签读取器方案...
  14. HDU1231(DP)
  15. int string相互转换
  16. 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) ...ubuntu 18.04 安装vim遇到的错误...
  17. 总结——达内视频(二)
  18. IPv6基础知识总结
  19. (附下载)线上抖音直播电商主播运营脚本方案计划书表格模板
  20. Iterator的使用

热门文章

  1. Linux中root下目录中没有.ssh文件
  2. java虚拟机-JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)
  3. 12 生成器和生成器函数以及各种推导式
  4. 解决maven构建webapp index.jsp报错问题
  5. NES模拟器开发-CPU笔记
  6. UVA 10746 Crime Wave - The Sequel
  7. 解决“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”(转贴)...
  8. 如何找出电脑里的流氓软件_啥拦截软件都挡不住?教你一键揪出乱弹窗的流氓软件...
  9. yii2表单数据检查怎么自定义输出错误_B端产品日记——表单设计
  10. revit导出lumion插件_建筑工程BIM建模入门级教程——REVIT的几种渲染方式