技术专栏
SSH服务器移植
SSH服务器移植
本文介绍在嵌入式开发板上移植,下面介绍了当前的移植环境,其他环境可参考。openssh编译需要额外的两个库:openssl和zlib。在使用最新版本的源码进行编译时会出现很多错误,下面也给出了编译成功时使用的源码包版本以及下载链接。
一、移植环境
-
开发平台:海思SS528
-
编译器:aarch64-mix210-linux-gcc
-
源码包:
- openssl:openssl-1.0.2k.tar.gz
- zlib:zlib-1.2.13.tar.gz
- openssh:openssh-7.4p1.tar.gz
-
编译目录结构
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
-
如何启动:/usr/local/sbin/sshd 必须使用绝对路径执行sshd启动服务
-
登录无权限(密码验证不通过):可能是ssh验证密钥的散列方式与系统的不同,当前使用des可以正常登录
# 可能可以通过配置sshd的配置文件修改ssh的散列方式(未测试) # ssh -Q cipher查询支持的配置 # 使用des方式重新设置密码 passwd -a des
-
sshd的配置文件的位置:/usr/local/etc/sshd_config
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
1
1
评论
打赏
- 分享
- 举报
评论
1个
手气红包
-
毛巾卷 2023-10-25 10:57:16回复 举报我想问一下怎么指定sshd_config的路径啊,我执行sshd的时候提醒我找不到这个文件,路径是我在电脑端的路径
相关专栏
-
浏览量:699次2023-08-21 11:47:40
-
浏览量:2271次2020-04-24 18:04:21
-
浏览量:4260次2017-10-30 16:46:25
-
浏览量:1727次2018-05-13 17:51:39
-
浏览量:13324次2018-12-27 13:16:45
-
浏览量:2172次2019-11-22 14:11:11
-
浏览量:2327次2020-07-24 17:13:30
-
浏览量:1524次2023-11-21 16:33:30
-
浏览量:2531次2018-05-26 16:08:31
-
浏览量:3125次2020-11-09 17:13:15
-
浏览量:840次2023-07-05 10:12:20
-
浏览量:6741次2020-12-08 10:08:40
-
浏览量:651次2024-01-22 15:27:25
-
浏览量:1890次2019-01-07 17:15:14
-
浏览量:2303次2019-12-31 09:01:27
-
浏览量:1621次2018-06-11 10:31:18
-
浏览量:6828次2020-12-17 09:45:27
-
浏览量:1207次2020-12-11 15:56:57
-
浏览量:2313次2020-07-28 19:16:36
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
cxcc
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注