移植openssh-7.5p1(包括openssl-1.0.2l、zlib-1.2.11)到HISI3520d(部署篇)

#PS:要转载请注明出处,本人版权所有

#PS:这个只是 《 我自己 》理解,如果和你的

#原则相冲突,请谅解,勿喷

此文的编译篇在:http://blog.csdn.net/u011728480/article/details/78037404
原本不想写这篇文章的,但是最近,新的需求下来,需要配置一个ssh服务端,但是板子的nand经过精打细算之后,只剩了几MB的空间了,于是得重新对编译和部署进行整理。然后将SSH部署到板子的SD卡上去。

前提:

首先根据编译篇的内容,将你要指定的SD卡的挂载目录参数添加上,而不是按照ssh的默认目录去部署。
最终,configure之后得到下图:
这里写图片描述
可以看到,我已经指定了我想要的路径,这个路径很重要,有些ssh相关的二进制文件根据编译时的参数写死了,所以,需要编译时指定。

开始部署:

首先根据前文,准备以下的文件到一个目录。

如图:(ssh相关的bin文件和配置文件)
这里写图片描述
(ssh 所依赖的so库)
这里写图片描述

创建相关的文件夹

mkdir -p /TFDISK/rootfs/bin/
mkdir -p /TFDISK/rootfs/sbin/
mkdir -p /TFDISK/rootfs/etc/
mkdir -p /TFDISK/rootfs/libexec/
mkdir -p /TFDISK/rootfs/share/
mkdir -p /TFDISK/rootfs/lib/
mkdir -p /var/run/
mkdir -p /var/empty/

修改相关文件夹权限以及添加ssh所需的用户组和用户

chown root:root /var/empty
chmod 755 /var/empty
addgroup sshd
adduser -G sshd -g 'sshd privsep' -h /var/empty -s /bin/ssh sshd
(添加用户时,也可直接修改/etc/passwd 文件,在最后一行添加sshd:x:74:74:Sky-SSH:/var/empty/sshd:/sbin/nologin)
//username:password:User ID:Group ID:comment:home directory:shell

复制相关文件及so库到相关的文件夹

cp sshd /TFDISK/rootfs/sbin/
cp scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan ssh-pkcs11-helper /TFDISK/rootfs/bin/
cp sftp-server ssh-keysign /TFDISK/rootfs/libexec/
cp sshd_config ssh_config moduli /TFDISK/rootfs/etc/

#libcrypto.so libssl.so libz.so
cp lib*.so* /TFDISK/rootfs/lib/

到开发板上,在ssh所需的etc/目录生成相关的秘钥文件,并修改权限

cd /TFDISK/rootfs/etc/
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

到此,直接可以通过/TFDISK/rootfs/sbin/sshd&运行,然后连接即可。(此时root和空密码是无法登录的)

号外号外:必须注意相关的额外配置

1 若想使用root登录,那么必须在sshd_config 里面,取消PermitRootLogin yes注释,并改值为yes,如果需要无密码登录,需要取消PermitEmptyPasswords yes注释,设置登录名密码为空(此选项不建议使用,因为我这里是开发板可以这样,毕竟不安全)。
2 因为上文实现了不安全的免密登录,安全的免密登录可以使用公钥来配置,具体可以去网上查找相关资料。

#PS:请尊重原创,不喜勿喷

#PS:要转载请注明出处,本人版权所有.

有问题请留言,看到后我会第一时间回复

猜你喜欢

转载自blog.csdn.net/u011728480/article/details/78969958