官网:https://www.openssh.com/
下载:http://www.openssh.com/portable.html#ftp
源码:openssh-9.0.tar.gz
OpenSSH 依赖 zlib 和 OpenSSL ,需先交叉编译 zlib 和 OpenSSL。
Step 1:解压源码
tar -xvzf openssh-9.0p1.tar.gzcd openssh-9.0p1/
Step 2:配置
./configure --host=aarch64-linux-gnu --prefix=/ --with-libs \--with-zlib=/home/xxx/share/3rdparty/zlib-1.2.13/arm_zlib \--with-ssl-dir=/home/xxx/share/3rdparty/openssl-1.1.1s/arm_openssl \--disable-etc-default-login CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar
注意:安装路径的设置,建议安装到根目录,方便后面板端部署。
Step 3:编译
make
注意:上一步设置的安装目录是根目录,这里交叉编译完后不要安装,避免将编译主机的 OpenSSH 覆盖掉。
Step 4:板端部署
1)将 OpenSSH 编译生成的可以执行文件放到板端根文件系统 /usr/bin/ 下
cp sshd scp sftp sftp-server ssh ssh-add ssh-agent ssh-keygen ssh-keyscan ssh-keysign ssh-pkcs11-helper ssh-sk-helper /home/xxx/share/rootfs/usr/bin/
2)将 OpenSSH 的配置文件放到板端根文件系统 /etc 下
cp ssh_config sshd_config /home/xxx/share/rootfs/etc/
如果需要用 root 用户 SSH 登录,修改 sshd_config,将 PermitRootLogin yes 打开,如下
#LoginGraceTime 2m#PermitRootLogin prohibit-passwordPermitRootLogin yes#StrictModes yes#MaxAuthTries 6#MaxSessions 10
3)在板端生成 key
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 ed25519 -f ssh_host_ed25519_key -N ""
将生成的 key 拷贝到 /etc 下,注意生成的 key 的权限需改为600
4)将 SSH 服务添加到自启动脚本
在启动脚本 /etc/init.d/rcS 添加启动 SSH 服务的命令
/usr/bin/sshd &
Step 5:测试体验
SSH 登陆
ssh -p 62022 root@192.168.1.109
SCP 传输文件
从远端拷贝文件到本机:
scp -P 62022 root@192.168.1.139:/home/wang/share/test.txt /home/xxx/share/nfs/
从本机拷贝文件到远端:
scp -r -P 62022 video_test root@192.168.1.139:/home/xxx/share