SSH服务器移植

SSH服务器移植 cxcc 2023-06-07 18:42:27 659

SSH服务器移植

本文介绍在嵌入式开发板上移植,下面介绍了当前的移植环境,其他环境可参考。openssh编译需要额外的两个库:openssl和zlib。在使用最新版本的源码进行编译时会出现很多错误,下面也给出了编译成功时使用的源码包版本以及下载链接。

一、移植环境

  1. 开发平台:海思SS528

  2. 编译器:aarch64-mix210-linux-gcc

  3. 源码包:

  4. 编译目录结构

    sshd
    ├── install          # 编译后的安装目录
    ├── pack         # 下载的源码包
    └── source           # 解压后的源码

二、编译

1) openssl

# 解压
tar -xvf ../pack/openssl-1.0.2k.tar.gz
cd openssl-1.0.2k
# 配置
# --prefix=`pwd`/../install/openssl 配置安装目录
./Configure linux-aarch64 no-asm shared no-async --prefix=`pwd`/../../install/openssl --cross-compile-prefix=aarch64-mix210-linux-
# 编译
make -j 20
# 安装
make install

2) zlib

# 解压
tar -xvf ../pack/zlib-1.2.13.tar.gz
cd zlib-1.2.13
# 配置
CHOST=aarch64-mix210-linux ./configure -prefix=`pwd`/../../install/zlib
# 编译
make -j 20
# 安装
make install

3) openssh

# 解压
tar -xvf ../pack/openssh-7.4p1.tar.gz
cd openssh-7.4p1
# 配置
CC=aarch64-mix210-linux-gcc AR=aarch64-mix210-linux-ar ./configure --host=aarch64 --with-libs --with-zlib=`pwd`/../../install/zlib --with-ssl-dir=`pwd`/../../install/openssl --disable-etc-default-login 

需要修改生成的Makefile

# 设置安装目录
DESTDIR=$(CURDIR)/../../install/openssh
# 设置strip
STRIP_OPT=-s --strip-program=aarch64-mix210-linux-strip
# 注释掉安装的最后一项,检查配置文件时需要执行编译好的sshd进行检查,由于是交叉编译平台不对应,所以无法执行
install: $(CONFIGFILES) $(MANPAGES) $(TARGETS) install-files install-sysconf host-key # check-config
# 编译
make
# 安装
make install

三、安装

安装只需要把生成在install/openssh下的usr和var复制到板端的根目录即可。其次需要为ssh配置运行环境

# 拷贝ssh相关文件
cp ~/nfs/openssh/usr / -r
cp ~/nfs/openssh/var / -r

# 拷贝库 libz.so.1文件在PC端的install/zlib/lib下
cp ~/nfs/libz.so.1 /lib64

# 添加sshd用户
echo "sshd:x:74:74::/var/empty/sshd:/sbin/nologin" >> /etc/passwd

# 修改PATH环境变量
echo "export PATH=$PATH:/usr/local/bin:/usr/local/sbin" >> /etc/prefile
source /etc/prefile

# 生成host密钥
ssh-keygen -t rsa -f /usr/local/etc/ssh_host_rsa_key
ssh-keygen -t dsa -f /usr/local/etc/ssh_host_dsa_key
ssh-keygen -t ecdsa -f /usr/local/etc/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /usr/local/etc/ssh_host_ed25519_key

四、FAQ

  1. 如何启动:/usr/local/sbin/sshd 必须使用绝对路径执行sshd启动服务

  2. 登录无权限(密码验证不通过):可能是ssh验证密钥的散列方式与系统的不同,当前使用des可以正常登录

    # 可能可以通过配置sshd的配置文件修改ssh的散列方式(未测试)
    # ssh -Q cipher查询支持的配置
    
    # 使用des方式重新设置密码
    passwd -a des
  3. sshd的配置文件的位置:/usr/local/etc/sshd_config

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
cxcc
红包 1 1 评论 打赏
评论
1个
内容存在敏感词
手气红包
  • 毛巾卷 2023-10-25 10:57:16
    回复
    我想问一下怎么指定sshd_config的路径啊,我执行sshd的时候提醒我找不到这个文件,路径是我在电脑端的路径
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
cxcc
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区