通过ssh-keygen生成秘钥:
1.不能在目标机上操作(cpu占用率爆满),会导致abort。
2.在windows下通过git bash执行ssh-keygen时,没有rsa1类型,所以密钥生成可以直接都在宿主机上完成。
参考:
https://www.linuxidc.com/Linux/2011-05/35686.htm(教程1)
https://blog.csdn.net/ke123456le/article/details/39316607(教程2)
https://blog.csdn.net/y010902100449/article/details/50343733(教程3)
依赖:openssh、openssl、zlib
Zlib(version:1.2.11):
没什么问题,编译后安装到/home/cust/zlib_arm目录下。
Openssl(version:0.9.8):
- 用之前编译ntp时用到的openssl-1.1.0版本时,会出现如下错误:
2. openssl要用0.9.8版本,在make install openssl时会提示POD之类的错误,目前的解决方法是删掉(重命名)/usr/bin/pod2man文件!
参考:https://blog.csdn.net/freeman1975/article/details/51475249(之方法2)
3. 安装到/home/cust/openssl-0.9.8_arm目录下。
4. 将lib目录下的libcrypto.so和libcrypto.so.0.9.8复制到目标板。
Openssh(version:6.6p1):
- Openssh配置命令:
2.在执行完这部分操作后,empty目录的拥有者可能不是root,在运行sshd时会提示出错,所以将第二行命令放在最后一条命令之后执行。
3.其他创建文件夹部分,参考教程1.
4.将libcrypto库文件复制到/lib目录下。
注:
1.sshd需要以绝对路径运行.
2.私钥的权限要设为600,否则sshd报错权限问题!(教程3)私钥的权限要设为600,否则sshd报错权限问题!(教程3)
3.因为/usr/local文件夹是/root/local文件夹的软连接,所以除了/var目录下的几个文件夹需要每次上电后新建,其他不用,所以在sshd的启动脚本里进行判断,如果相应的文件夹缺少则新建,最后执行sshd程序。
4.其实移植openssh的第一初衷是移植vsftpd,奈何到最后还是没搞定。。。但是目前也实现了和vsftpd一样的效果,在此将方法记下,以备后需:
[都依赖sshd服务][都在windows环境下]
方式1:
安装gitforwindows,借助其自带的mingw命令工具中的scp功能,实现单个文件上传/下载(每次都要写一长串命令还得输密码。。。估计可以通过公钥实现免输密码);保底。
方式2:
安装winscp软件,可实现类似于cuteFTP的功能,非常明了、方便;但是连接时可能需要多试几次,暂时不清楚是测试环境局域网的问题还是其他原因?(经测试,开启VPN状态下,也可正常连接到远程服务器!)
5.关于libcrypto.so版本
sshd只需要libcrypto.so.0.9.8
ntpdate只需要libcrypto.so.1.1
经测试,暂时都不需要libcrypto.so和libssl.so及libssl.so.x.x文件