openssh交叉编译

下载源码包:
openssh http://www.openssh.com/portable.html
openssl http://www.openssl.org/source
zlib    http://www.zlib.net/
推荐版本:zlib-1.2.11.tar.gz,openssl-1.0.2q.tar.gz,openssh-8.2p1.tar.gz

mkdir compressed install source
compressed 用于存放源码包
install    软件安装目录
source     源码包解压目录

cd zlib
prefix=~/work/ssh/install/zlib CC=arm-himix410-linux-gcc AR=arm-himix410-linux-ar ./configure

如果需要生成so库的话需要加上 --shared

vim Makefile
CC=arm-himix410-linux-gcc
CPP=arm-himix410-linux-g++
AR=arm-himix410-linux-ar
make
make install


cd openssl
./Configure --prefix=~/work/ssh/install/openssl os/compiler:arm-himix410-linux-gcc -fPIC no-asm shared
make CC=arm-himix410-linux-gcc AR=arm-himix410-linux-ar
make install


cd openssh
./configure --host=arm-himix410-linux --with-libs --with-zlib=~/work/ssh/install/zlib --with-ssl-dir=~/work/ssh/install/openssl --disable-etc-default-login CC=arm-himix410-linux-gcc AR=arm-himix410-linux-ar
make

 


操作目标板:
确保目标板有以下目录,如果没有则新建:
/usr/local/bin
/usr/local/etc
/usr/local/libexec
/var/run
/var/empty/sshd

chown -R root.root /var/empty/sshd
chmod 744 /var/empty/sshd

将 openssh 目录下文件拷贝到开发板系统中,具体为:
scp、sftp、ssh 、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan 共7个文件拷贝到开发板 /usr/local/bin
moduli、ssh_config、sshd_config 共3个文件拷贝到开发板 /usr/local/etc
sftp-server、ssh-keysign 共2个文件拷贝到开发板 /usr/local/libexec
sshd 拷贝到 /usr/sbin
chmod 777 /usr/sbin/sshd
libz.so.1.2.11 拷贝到开发板 /lib (必须放在/lib下,不然scp会找不到这个库)
然后建立软链接:
ln -s libz.so.1.2.11 libz.so.1


生成key文件:
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ""
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""
将生成的 ssh_host_rsa_key 、 ssh_host_dsa_key 和 ssh_host_ecdsa_key 拷贝到 /usr/local/etc
chmod 600 ssh_host_*
#如果开发板需要 ssh_host_key 的话,执行:
#ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N ""

如果出现 privilege separation user sshd 问题:
在 /etc/passwd 增加以下:
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
或者修改 /etc/ssh/sshd_config (这会降低ssh的安全性):
UsePrivilegeSeparation yes 改成 UsePrivilegeSeparation no

测试:
/usr/sbin/sshd
用 ps ax 查看 sshd 是否运行


ssh root登录:
修改 sshd_config
PermitRootLogin yes
StrictModes yes
PermitEmptyPasswords yes

修改 ssh_config
StrictHostKeyChecking no

重启系统 reboot


设置ssh开机自启动:
在/etc/init.d/S90app
添加:/usr/sbin/sshd

posted @ 2021-08-04 15:38  不止所见  阅读(1823)  评论(0编辑  收藏  举报