openssh 在arm linux 嵌入式平台交叉编译,100%成功运行
2017-03-13 21:23
701 查看
本文真实地址:http://blog.csdn.net/code_style/article/details/61928328
1、openssh版本,最新版本openssh-7.5P1.tar.gz,下载地址:https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz
2、交叉编译环境:arm-linux-gnueabi-gcc 4.8
3、由于openssh依赖zlib和openssl,所以编译openssh之前,先要编译出zlib库和openssl库,最新版本的openssh-7.5P1.tar.gz 必须配合相应的openssl版本(OpenSSL
>= 0.9.8f < 1.1.x)才能编译成功,否则会出现各种宏找不到的错误 。具体编译openssh以及zlib,openssl不说了,网上一搜一大堆,推荐:http://www.veryarm.com/892.html
4、打包步骤,将以下脚本放到openssh目录下运行,可以把所有需要打包的文件自动归类到tar_openssh目录下,如果你拷贝粘贴,很可能就会出现脚本不兼容的问题(拷贝脚本到linux下,用dos2unix(sudo
apt-get install dos2unix)工具修改一下文件,不然脚本运行错误)
在主机上(win7使用openssh win32版本,Linux直接openssh)生成公钥和私钥,然后把所有密钥复制到目标板上/usr/local/etc目录下
win7版本最新的openssh下载路径:https://github.com/PowerShell/Win32-OpenSSH/releases
7、在win7主机上生成私钥和公钥(直接切换到openssh安装目录,再运行,不然会提示不是内部或外部命令),Linux上是一样的命令
8、把所有生成的key文件,包括.pub和无扩展名的,都拷贝到开发板的/usr/local/etc目录下,按照如下权限修改
9、
修改pts挂载点,这一步非常关键,不然后面用PuttY工具连接开发板时候会出现Server refused to allocate pty错误
注意,在fstab文件最后增加的那一行,一定要严格复制如下的文本,否则格式不对,执行mount /dev/pts的时候,会提示mount: can't find /dev/pts in /etc/fstab
10、最后执行mount /dev/pts如果没有什么错误,就说明没问题了
11、运行sshd
常规软件的运行方式是./程序名,结果./sshd就提示如下错误
sshd re- exec requires execution with an absolute path
原来是要这样的,不需要点,直接输入/usr/local/sbin/sshd,回车,如果key没有错误的话就可以运行了
12、sshd服务运行起来以后,在PC客户端上直接配置好对应的ssh_config文件,然后ssh登录到arm
linux即可
1、openssh版本,最新版本openssh-7.5P1.tar.gz,下载地址:https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz
2、交叉编译环境:arm-linux-gnueabi-gcc 4.8
3、由于openssh依赖zlib和openssl,所以编译openssh之前,先要编译出zlib库和openssl库,最新版本的openssh-7.5P1.tar.gz 必须配合相应的openssl版本(OpenSSL
>= 0.9.8f < 1.1.x)才能编译成功,否则会出现各种宏找不到的错误 。具体编译openssh以及zlib,openssl不说了,网上一搜一大堆,推荐:http://www.veryarm.com/892.html
4、打包步骤,将以下脚本放到openssh目录下运行,可以把所有需要打包的文件自动归类到tar_openssh目录下,如果你拷贝粘贴,很可能就会出现脚本不兼容的问题(拷贝脚本到linux下,用dos2unix(sudo
apt-get install dos2unix)工具修改一下文件,不然脚本运行错误)
#!/bin/sh mkdir -p ./tar_openssh #scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan cp -rf scp ./tar_openssh cp -rf sftp ./tar_openssh cp -rf ssh ./tar_openssh cp -rf ssh-add ./tar_openssh cp -rf ssh-agent ./tar_openssh cp -rf ssh-keygen ./tar_openssh cp -rf ssh-keyscan ./tar_openssh #moduli ssh_config sshd_config cp -rf moduli ./tar_openssh cp -rf ssh_config ./tar_openssh cp -rf sshd_config ./tar_openssh #sftp-server ssh-keysign cp -rf sftp-server ./tar_openssh cp -rf ssh-keysign ./tar_openssh #sshd cp -rf sshd ./tar_openssh echo "all file cp to ./tar_openssh dir"5、把以下脚本放到tar_openssh目录,再把tar_openssh目录拷贝到目标板上,修改untar_pkg.sh权限为可执行,然后运行该脚本,它会自动把文件部署到对应的目录
#!/bin/sh mkdir -p /usr/local/bin/ mkdir -p /usr/local/sbin/ mkdir -p /usr/local/etc/ mkdir -p /usr/local/libexec/ mkdir -p /var/run/ mkdir -p /var/empty/ chmod 744 smv sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan ssh_config sftp-server ssh-keysign sshd #smv sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 拷贝到目标板/usr/local/bin mv -rf smv /usr/local/bin/ mv -rf sftp /usr/local/bin/ mv -rf ssh /usr/local/bin/ mv -rf ssh-add /usr/local/bin/ mv -rf ssh-agent /usr/local/bin/ mv -rf ssh-keygen /usr/local/bin/ mv -rf ssh-keyscan /usr/local/bin/ #moduli ssh_config sshd_config 拷贝到目标板 /usr/local/etc chmod 620 moduli mv -rf moduli /usr/local/etc chmod 644 ssh_config mv -rf ssh_config /usr/local/etc chmod 600 sshd_config mv -rf sshd_config /usr/local/etc #sftp-server ssh-keysign 拷贝到目标板 /usr/local/libexec mv -rf sftp-server /usr/local/libexec mv -rf ssh-keysign /usr/local/libexec #sshd 拷贝到目标板 /usr/local/sbin/ mv -rf sshd /usr/local/sbin/6、
在主机上(win7使用openssh win32版本,Linux直接openssh)生成公钥和私钥,然后把所有密钥复制到目标板上/usr/local/etc目录下
win7版本最新的openssh下载路径:https://github.com/PowerShell/Win32-OpenSSH/releases
7、在win7主机上生成私钥和公钥(直接切换到openssh安装目录,再运行,不然会提示不是内部或外部命令),Linux上是一样的命令
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 ""
8、把所有生成的key文件,包括.pub和无扩展名的,都拷贝到开发板的/usr/local/etc目录下,按照如下权限修改
#chmod 600 ssh_host_dsa_key ssh_host_rsa_key ssh_host_ecdsa_key ssh_host_ed25519_key #chmod 644 ssh_host_dsa_key.pub ssh_host_rsa_key.pub ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub
9、
修改pts挂载点,这一步非常关键,不然后面用PuttY工具连接开发板时候会出现Server refused to allocate pty错误
注意,在fstab文件最后增加的那一行,一定要严格复制如下的文本,否则格式不对,执行mount /dev/pts的时候,会提示mount: can't find /dev/pts in /etc/fstab
#rm -rf mknod #mknod -m 666 /dev/ptmx c 5 2 #chmod 666 /dev/ptmx #mkdir /dev/pts #mount /dev/pts 在/etc/fstab文件中增加最后一行 none /dev/pts devpts gid=5,mode=620 0 0
10、最后执行mount /dev/pts如果没有什么错误,就说明没问题了
11、运行sshd
常规软件的运行方式是./程序名,结果./sshd就提示如下错误
sshd re- exec requires execution with an absolute path
原来是要这样的,不需要点,直接输入/usr/local/sbin/sshd,回车,如果key没有错误的话就可以运行了
12、sshd服务运行起来以后,在PC客户端上直接配置好对应的ssh_config文件,然后ssh登录到arm
linux即可
相关文章推荐
- 嵌入式平台arm linux 之qt 4.5交叉编译到webkit时出错解决方法
- 交叉编译tslib1.4过程详述,配合QT4.5.3成功在Mini2440运行成功
- 图解如何将Ubuntu上的Qt程序交叉编译出可在ARM平台运行的程序(五部曲)
- Ubuntu 14.04 64位 嵌入式交叉编译环境arm-linux-gcc搭建 一次成功
- 在linux 上编译生成windows上运行的exe程序,交叉编译环境的配置( 平台:gentoo linux)
- 嵌入式深度学习之NCNN交叉编译Arm Linux
- 生成在嵌入式设备上运行的程序需要进行交叉编译
- 嵌入式深度学习之mxnet交叉编译Arm Linux
- 【ARM】嵌入式 ARM Linux 下移植 USB 蓝牙、交叉编译 bluez 各种版本
- (OK) 移植,编译,安装 LineageOS-14.1-kiwi (Android-7.1.1,运行在Huawei honor 5x) for VirtualBox - 100% 成功
- 在Linux平台上使用Cmake进行交叉编译替代嵌入式平台所使用的Makefile
- 交叉编译tslib1.4过程详述,配合QT4.5.3成功在Mini2440运行成功
- Linux平台下编译运行wxWidgets简单窗口程序
- LINUX2.6内核下交叉编译成功的sin(x)测试函数
- 嵌入式LINUX ---ARM交叉编译工具链的编译
- BCB编译成功的程序在其他机子上运行时提示vcl60.bpl找不到的解决方法
- 测试交叉编译环境arm-elf-tools-20040427.sh安装是否成功
- 借助交叉编译用C编译Android上运行的程序
- 庆祝一下PDA电力抄表平台成功上线运行了