目录
下载地址
源码编译
编译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
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链接会有错误
make
make install
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改一下
make
make install
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
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/
完整的资源包括
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
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)
默认情况下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/下
修改启动脚本为
其他流程不变