移植ssh
红字加粗为编译器不同、路径不同需要注意修改的地方
一、源码包下载:
- zlib官方下载:http://www.zlib.net/
- openssl官方下载:http://www.openssl.org/source
- openssh官网下载:http://www.openssh.com/portable.html
本文使用版本:
zlib-1.2.3
openssl-0.9.8l
openssh-7.1p2
下面链接有已上传的配置好的源码包
https://files.cnblogs.com/files/pokerface/zlib-1.2.3.tar.gz
https://files.cnblogs.com/files/pokerface/openssl-0.9.8l.tar.gz
https://files.cnblogs.com/files/pokerface/openssh-7.1p2.tar.gz
二、创建工作目录
安装路径:/opt/ssh/install/
源码路径:/opt/ssh/source/
压缩包路径:/opt/ssh/tmp/
三、编译安装zlib
1.修改Makefile :
增加CROSS=arm-linux-
CC=gcc 改为 CC=$(CROSS)gcc
确保 LDSHARED=CC
确保 CPP=CC - E
AR= ar rc 改为 AR=$(CROSS) ar rc
prefix = /opt/ssh/install/
2.编译:
make
3.安装:
make install
四、编译安装openssl
1.配置
./Configure --prefix=/opt/ssh/install/openssl os/compiler:arm-linux-gcc
2.编译
make
3.安装
make install
五、编译openssh
1.配置
./configure --host=arm-linux --with-libs --with-zlib=/opt/ssh/install/zlib-1.2.3/ --with-ssl-dir=/opt/ssh/install/openssl-0.9.8/ --disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar
2.编译
make
3.将生成软件放到目标板对应目录
cp scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan /opt/filesystem/imx6/rootfs/usr/local/bin/
cp moduli ssh_config sshd_config /opt/filesystem/imx6/rootfs/usr/local/
cp moduli ssh_config sshd_config /opt/filesystem/imx6/rootfs/usr/local/etc/
cp sftp-server ssh-keysign /opt/filesystem/imx6/rootfs/usr/libexec/
cp sshd /opt/filesystem/imx6/rootfs/usr/sbin/
chmod 777 /opt/filesystem/imx6/rootfs/usr/local/bin/*
chmod 777 /opt/filesystem/imx6/rootfs/usr/sbin/*
六、生成密钥文件
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
cp ssh_host_* /opt/filesystem/imx6/rootfs/usr/local/etc/
七、修改ssh配置文件
2. /etc/passwd 文件,在最后添加下面这一行:
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
3.如果开发板的 root 用户还没有密码,键入以下命令然输入两次密码来修改,否其他设备无法连:
passwd root
4.将sshd加入开机启动项
修改/etc/init.d/rcS增加/usr/sbin/sshd
八、软件远程登录
如果出现
找不到匹配的outgoing encryption算法
问题出现在xshell版本太低,没有相应加密算法,更换新的就行了,我用的xshell5,xshell3就不支持最新sshd加密
POD document had syntax errors at /usr/bin/pod2man line 71.
问题出现在由于OpenSSL 1.0.1e 与 perl5.18 不兼容,删除 pod2man文件:sudo rm /usr/bin/pod2man
cp: cannot create regular file ‘openssl/include/openssl/crypto.h’: No such file or directory
问题出现在由于配置时使用了相对路径,改为绝对路径就可以了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)