移植openssh

目录

下载地址

源码编译

编译zlib

编译openssl

编译openssh

将资源CP到开发板

文件系统中构建目录

资源cp

修改配置

修改启动脚本 rcS

修改默认ssh的配置目录


arm平台  +  Xshell5

下载地址

zlib(zlib-1.2.13.tar.gz):http://www.zlib.net/

openssl(openssl-3.0.2.tar.gz):https://www.openssl.org/source/

openssh(openssh-8.9p1.tar.gz):https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

有外网的情况下也可以使用wget下载

wget http://www.zlib.net/zlib-1.2.12.tar.gz

wget https://www.openssl.org/source/openssl-3.0.2.tar.gz

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.9p1.tar.gz

源码编译

编译zlib

tar -zxvf zlib-1.2.13.tar.gz

mkdir zlib

cd zlib-1.2.13

export CROSS_PREFIX=
export CC=arm-sigmastar-linux-uclibcgnueabihf-9.1.0-gcc
export LD=arm-sigmastar-linux-uclibcgnueabihf-9.1.0-ld
export AD=arm-sigmastar-linux-uclibcgnueabihf-9.1.0-as
export LDFLAGS=-Wl,-gc-sections

./configure --prefix=$PWD/../zlib --static

vim Makefile在CFLAGS后面添加-fPIC,否则后面openssh链接会有错误

移植openssh_第1张图片

 make

make install

编译openssl

tar -zxvf openssl-3.0.2.tar.gz

mkdir openssl

cd openssl-3.0.2

./Configure linux-generic32 no-shared no-dso -DL_ENDIAN --prefix=${PWD}/../openssl --openssldir=${PWD}/../openssl

如果想要减小大小可以才裁剪掉不用的算法

./Configure linux-generic32 no-shared no-dso -DL_ENDIAN --prefix=${PWD}/../openssl --openssldir=${PWD}/../openssl no-threads no-sse2 no-bf no-cast no-idea no-md2 no-md4 no-rc2 no-rc4 no-rc5 no-camellia no-dso no-srp no-seed

vim Makefile ,由于前面zlib的影响,这里要把CC改一下

移植openssh_第2张图片

 make

make install

编译openssh

tar -zxvf openssh-8.9p1.tar.gz

cd openssh-8.9p1

./configure --host=arm-sigmastar-linux-uclibcgnueabihf --with-libs --with-zlib=/home/work/ssh/zlib --with-ssl-dir=/home/work/ssh/openssl --disable-etcdefault-login CC=arm-sigmastar-linux-uclibcgnueabihf-9.1.0-gcc AR=arm-sigmastar-linux-uclibcgnueabihf-9.1.0-ar 

make

将资源CP到开发板

文件系统中构建目录

mkdir -p /usr/local/bin
mkdir -p /usr/local/sbin
mkdir -p /usr/local/libexec/
mkdir -p /usr/local/etc
mkdir -p /var/run
mkdir -p /var/empty/

资源cp

完整的资源包括

scp、sftp、ssh、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan  到  /usr/local/bin下

sshd  到  usr/local/sbin下

moduli、ssh_config、sshd_config  到  usr/local/etc下

sftp-server、ssh-keysign  到  /usr/local/libexec下

实际用不了全部,如果在意大小只需要将

sshd 到  usr/local/sbin下

sftp-server、ssh-keysign  到  /usr/local/libexec下即可

修改配置

修改passwd

在/etc/passwd 中添加下面这一行

sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin

修改/usr/local/etc/sshd_config文件内容

1.将PasswordAuthentication yes前的注释#去掉;

2.将#PermitRootLogin yes前的注释#去掉;

3.将#PermitEmptyPasswords no 修改为PermitEmptyPasswords yes

修改启动脚本 rcS

cd /usr/local/etc
/usr/local/bin/ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
/usr/local/bin/ssh-keygen -t dsa -f ssh_host_dsa_key -N ""   #非必须
/usr/local/bin/ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""
/usr/local/bin/ssh-keygen -t dsa -f ssh_host_ed25519_key -N ""   #非必须

/usr/local/sbin/sshd

最后就可以用xshell 使用ssh访问开发板了

开发板openssh移植步骤-启扬ARM嵌入式开发-电子发烧友网 (elecfans.com)

修改默认ssh的配置目录

默认情况下openssh相关的配置路径在/usr/local/下

如果不想放在usr/local,可以在编译openssh时添加--libexecdir=/usr/libexec --sysconfdir=/etc/ssh


./configure --host=arm-sigmastar-linux-uclibcgnueabihf --with-libs --with-zlib=/home/work/ssh/zlib --with-ssl-dir=/home/work/ssh/openssl --disable-etcdefault-login CC=arm-sigmastar-linux-uclibcgnueabihf-9.1.0-gcc AR=arm-sigmastar-linux-uclibcgnueabihf-9.1.0-ar --libexecdir=/usr/libexec --sysconfdir=/etc/ssh

此时拷贝对应的路径为

moduli、ssh_config、sshd_config  到  etc/ssh/下

sftp-server  到  /usr/libexec/下

sshd 到 sbin/ 下

ssh-keygen 到 bin/下

修改启动脚本为

移植openssh_第3张图片

 其他流程不变

你可能感兴趣的:(开源工具,服务器,运维)