PS:要转载请注明出处,本人版权所有。

PS: 这个只是基于《我自己》的理解,

如果和你的原则及想法相冲突,请谅解,勿喷。

前置说明

  本文作为本人csdn blog的主站的备份。(BlogID=051)

  本文发布于 2018-01-04 14:09:56,现用MarkDown+图床做备份更新。blog原图已丢失,使用csdn所存的图进行更新。(BlogID=051)

环境说明

  无

前言


  此文的编译篇在:http://blog.csdn.net/u011728480/article/details/78037404

  原本不想写这篇文章的,但是最近,新的需求下来,需要配置一个ssh服务端,但是板子的nand经过精打细算之后,只剩了几MB的空间了,于是得重新对编译和部署进行整理。然后将SSH部署到板子的SD卡上去。

openssh 的部署


  首先根据编译篇的内容,将你要指定的SD卡的挂载目录参数添加上,而不是按照ssh的默认目录去部署。

  最终,configure之后得到下图:

  可以看到,我已经指定了我想要的路径,这个路径很重要,有些ssh相关的二进制文件根据编译时的参数写死了,所以,需要编译时指定。

开始部署:
  1. 首先根据前文,准备以下的文件到一个目录。

  如图:(ssh相关的bin文件和配置文件)

  (ssh 所依赖的so库)

  1. 创建相关的文件夹
mkdir -p /TFDISK/rootfs/bin/
mkdir -p /TFDISK/rootfs/sbin/
mkdir -p /TFDISK/rootfs/etc/
mkdir -p /TFDISK/rootfs/libexec/
mkdir -p /TFDISK/rootfs/share/
mkdir -p /TFDISK/rootfs/lib/
mkdir -p /var/run/
mkdir -p /var/empty/
  1. 修改相关文件夹权限以及添加ssh所需的用户组和用户
chown root:root /var/empty
chmod 755 /var/empty
addgroup sshd
adduser -G sshd -g 'sshd privsep' -h /var/empty -s /bin/ssh sshd
(添加用户时,也可直接修改/etc/passwd 文件,在最后一行添加sshd:x:74:74:Sky-SSH:/var/empty/sshd:/sbin/nologin)
//username:password:User ID:Group ID:comment:home directory:shell
  1. 复制相关文件及so库到相关的文件夹
cp sshd /TFDISK/rootfs/sbin/
cp scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan ssh-pkcs11-helper /TFDISK/rootfs/bin/
cp sftp-server ssh-keysign /TFDISK/rootfs/libexec/
cp sshd_config ssh_config moduli /TFDISK/rootfs/etc/ #libcrypto.so libssl.so libz.so
cp lib*.so* /TFDISK/rootfs/lib/
  1. 到开发板上,在ssh所需的etc/目录生成相关的秘钥文件,并修改权限
cd /TFDISK/rootfs/etc/
ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""
ssh-keygen -t dsa -f ssh_host_ed25519_key -N ""
chmod 600 ssh_host_ed25519_key
  1. 到此,直接可以通过/TFDISK/rootfs/sbin/sshd&运行,然后连接即可。(此时root和空密码是无法登录的)
号外号外:必须注意相关的额外配置
  1. 若想使用root登录,那么必须在sshd_config 里面,取消PermitRootLogin yes注释,并改值为yes,如果需要无密码登录,需要取消PermitEmptyPasswords yes注释,设置登录名密码为空(此选项不建议使用,因为我这里是开发板可以这样,毕竟不安全)。
  2. 因为上文实现了不安全的免密登录,安全的免密登录可以使用公钥来配置,具体可以去网上查找相关资料。

后记


  无

参考文献


打赏、订阅、收藏、丢香蕉、硬币,请关注公众号(攻城狮的搬砖之路)

PS: 请尊重原创,不喜勿喷。

PS: 要转载请注明出处,本人版权所有。

PS: 有问题请留言,看到后我会第一时间回复。

移植openssh-7.5p1(包括openssl-1.0.2l、zlib-1.2.11)到HISI3520d(部署篇)的更多相关文章

  1. windows 下编译 OpenSSL1.0.2l 版

    1.需要的软件工具: microsoft visual studio2013(或2010以后其他版本) Perl 软件, 版本为strawberry - perl - 5.26.0.1 - 64bit ...

  2. 移植openssh到nuc951 evb板

    移植openssh到nuc951 evb板 一 应用环境: 硬件:nuc951evb 软件:linux2.6.35 bsp 二 交叉编译openssl openssh 1.下载 openssl-1.0 ...

  3. 移植openssh到arm linux

    一.在移植之前需要准备做一些前期准备: 1.移植zlib库 1.1获取zlib源码 1.2解压 tar xvf zlib-1.2.11.tar.xz 1.3交叉编译 1.3.1 指定交叉编译器 exp ...

  4. python3 安装 #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz RHEL 8 install Python 3 or Python 2 using yum 编译安装 python3.7.4 . OpenSSL 1.0.2 or 1.1. Consequently, OpenSSL 0.9.8 and 1.0

    #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz Modules/Setup.dist https://askubuntu ...

  5. OpenSSL 1.0.2e 3 Dec 2015

    目录: 1,交叉编译openssl 2,win32  vc9 编译 openssl 1,交叉编译openssl [原]交叉编译openssl不修改Makefile的方法 http://blog.chi ...

  6. vs2008环境nmake编译 apache 2.2.29 openssl 1.0.1g mod_ssl 不知道如何生成“"..\..\srclib\openssl\inc32\openssl\store.h"”

    问题: vs2008环境nmake编译 apache 2.2.29 openssl 1.0.1g mod_ssl 不知道如何生成“"..\..\srclib\openssl\inc32\op ...

  7. OpenSSL 1.0.0生成p12、jks、crt等格式证书的命令个过程(转)

    OpenSSL 1.0.0生成p12.jks.crt等格式证书的命令个过程   此生成的证书可用于浏览器.java.tomcat.c++等.在此备忘!     1.创建根证私钥命令:openssl g ...

  8. OpenSSL 1.0.0生成p12、jks、crt等格式证书的命令个过程 -参考自http://lavasoft.blog.51cto.com/62575/1104993/

    OpenSSL 1.0.0生成p12.jks.crt等格式证书的命令个过程   此生成的证书可用于浏览器.java.tomcat.c++等.在此备忘!     1.创建根证私钥命令:openssl g ...

  9. centos下从源码安装openssl 1.0.1g

    cd /usr/srcwget https://www.openssl.org/source/openssl-1.0.1g.tar.gz -O openssl-1.0.1g.tar.gz tar -z ...

  10. 2014年第一季度Oracle PSU更新(包括10.2.0.4+版本号全部PSU信息)

    2014年第一季度的PSU更新主要是3个版本号:12.1.11.2.0.4.11.2.0.3以及11.1.0.7. 在第2季度Oracle 将公布12.1.0.2,同一时候11.2.0.4版本号也将是 ...

随机推荐

  1. Linux sed输出文件内容的某几行

    命令: sed -n "开始行,结束行p" 文件名 sed -n '70,75p'   文件名             # 输出第70行到第75行的内容 sed -n '6p;26 ...

  2. NC14352 旅行

    题目链接 题目 题目描述 小z放假了,准备到R城市旅行,其中这个城市有N个旅游景点.小z时间有限,只能在三个旅行景点进行游玩.小明租了辆车,司机很善良,说咱不计路程,只要你一次性缴费足够,我就带你走遍 ...

  3. spring boot结合ehcache防止恶意刷新请求

    说明 我们在把开发好的网站上线之前一定要考虑到别人恶意刷新你的网页这种情况,最大限度的去限制他们.否则往往这将搞垮你的应用服务器,想象一下某个恶意用户利用众多肉鸡在1分钟内请求你网页几十万次是个什么情 ...

  4. js中返回今天是星期几的方法

    var weeks=["星期日","星期一","星期二","星期三","星期四","星期五 ...

  5. 在Android开发中如何使用OpenSL ES库播放解码后的pcm音频文件?

    一.认识OpenSL ES OpenSL ES的全称是Open Sound Library For Embedded Systems,即应用于嵌入式系统的开源音频库.Android从2.3版本起就开始 ...

  6. 我的小程序之旅七:微信公众号设置IP白名单

    一.为什么要配置IP白名单 此处IP为服务器对公网IP: 在IP白名单内的IP地址作为来源,获取access_token接口才可调用成功. 而想要调用公众号相关API,就必须获取access_toke ...

  7. StretchDIBits在一些图像尺寸下失败

    StretchDIBits用来打印图像,但是由于某种未知的原因,当图像达到特定尺寸时,它会失败. 图像数据从其他一些图像源以24位BGR格式加载到无符号int数组中.它可以在某些大小下工作,但根本无法 ...

  8. 一个Git Commit Message模板

    一个统一的commit消息模板可以约束团队成员使用一致的方式提交变更信息,这样也方便集成工具进行合规检查. 通常来讲,commit信息应该包含如下内容: <type>(<scope& ...

  9. Qt+MySql开发笔记:Qt5.9.3的mingw32版本编译MySql8版本驱动并Demo连接数据库测试

    前言   之前特定的mysql版本msvc版本已经调通了,但是为了更好的跨平台,所以选择用mingw32版本,于是需要编译mysql驱动的mingw32版本的驱动库,以便提供给qt连接mysql使用. ...

  10. SVN培训笔记(下拉项目、同步修改、添加文件、修改文件、删除文件、改名文件等)

    前言   为了方便新加入团队的员工熟悉团队协作开发.  为了将好东西整理分享给有需要的网友.  将SVN内部员工培训文档公开,以方便更多的人,提高知识获取速度,尽快熟悉协同开发.  本文档培训员工对于 ...