arm交叉编译 sshd服务器让外界登陆。
2017-08-01 19:04
162 查看
转自:http://blog.sina.com.cn/s/blog_7f2a9a390100xws4.html
步骤:
1.下载源码包,地址如下:
openssh http://www.openssh.com/portable.html
openssl http://www.openssl.org/source
zlib http://www.zlib.net/
2.交叉编译
创建工作目录:
#mkdir /work
#cd /work
在/work目下面创建ssh目录
# mkdir /work/ssh -----〉工作目录
# cd /work/ssh
# mkdir compressed install -----〉compressed 用于存放源码包
-----〉Install 软件安装目录
-----〉Source 源码包解压目录
#mv tarpakgs/openssh-4.6p1.tar.gz /work/ssh/compressed
#mv tarpakgs/openssl-0.9.8e.tar.gz /work/ssh/compressed
#mv tarpakgs/zlib-1.2.3.tar.gz /work/ssh/compressed
解压安装包:
# cd /work/ssh/
# tar zxvf zlib-1.2.3.tar.gz -C ../compressed
# tar zxvf openssl-0.9.8e.tar.gz -C ../compressed
# tar zxvf openssh-4.6p1.tar.gz –C ../compressed
交叉编译 zlib:
# cd /work/ssh/source/zlib-1.2.3
# ./configure --prefix=/work/ssh/install/zlib-1.2.3
# vim Makefile
CC=arm-none-linux-gnueabi-gcc
AR=arm-none-linux-gnueabi-ar rc
CPP =arm-none-linux-gnueabi-gcc -E
LDSHARED=arm-none-linux-gnueabi-gcc
# make
# make install
交叉编译openssl
# cd /work/ssh/source/openssl-0.9.8e
# ./Configure --prefix=/work/ssh/install/openssl-0.9.8e os/compiler:arm-none-linux-gnueabi-gcc
# make
# make install
交叉编译openssh
# cd /work/ssh/source/ openssh-4.6p1
#./configure --host=arm-none-linux-gnueabi --with-libs --with-zlib=/work/ssh/install/zlib-1.2.3 --with-ssl-dir=/work/ssh/install/openssl-0.9.8e --disable-etc-default-login
CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar
#make
注意:openssh不需要make install
3.操作目标板
3.1确保目标板上有以下目录,若没有,则新建:
/usr/local/etc/
/var/empty/
3.2从PC机上将以下文件拷贝到目标板Linux系统中
PC机 /work/ssh/source/openssh-4.6p1/ 目录下的
sshd_config拷贝到目标板
/usr/local/etc
sshd 拷贝到目标板
libz.so.1 拷贝到目标板 /lib/目录下
注意:sshd的启动必须使用绝对路径寻址
[b]3.3生成Key文件
在PC机 /work/ssh/source/openssh-4.6p1/ 目录下运行:
ssh-keygen -t rsa -N ""
[/b]
注意:ssh-keygen的生成路径也必须使用绝对路径寻址
3.4修改目标板passwd文件。
在/etc/passwd 中添加下面这一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
测试:
主机上:
#ssh root@192.168.0.34(开发板的ip)
自动登录(免密码,用户名)说明:
使用ssh-keygen将产生密钥对
将公钥导入到服务器的认证池:cat
id_rsa.pub >> ~/.ssh/authorized_keys
将私钥导入到本机认证池:cat
id_rsa >> .ssh/authorized_keys
本机使用:[b]ssh
root@192.168.0.34(开发板的ip)免密登录服务器[/b]
如果authorized_keys文件、$HOME/.ssh目录
或 $HOME目录让本用户之外的用户有写权限,那么sshd都会拒绝使用 ~/.ssh/authorized_keys 文件中的key来进行认证的。
其他注意点:
不要使用新版文件,会编译不过
建议使用旧版ssh: openssh从6.5版本开始,使用openssl
源码编译的时候,必须使用动态库(在openssh 6.4之前的版本中没这种情况);
新版的openssl的Comfigure无法设置os/compiler,需要使用旧版
解压文件命令很简单 :
.tar.gz 格式解压为 tar -zxvf xx.tar.gz
.tar.bz2 格式解压为 tar -jxvf xx.tar.bz2
.7z格式解压为 7z x xx.7z
步骤:
1.下载源码包,地址如下:
openssh http://www.openssh.com/portable.html
openssl http://www.openssl.org/source
zlib http://www.zlib.net/
2.交叉编译
创建工作目录:
#mkdir /work
#cd /work
在/work目下面创建ssh目录
# mkdir /work/ssh -----〉工作目录
# cd /work/ssh
# mkdir compressed install -----〉compressed 用于存放源码包
-----〉Install 软件安装目录
-----〉Source 源码包解压目录
#mv tarpakgs/openssh-4.6p1.tar.gz /work/ssh/compressed
#mv tarpakgs/openssl-0.9.8e.tar.gz /work/ssh/compressed
#mv tarpakgs/zlib-1.2.3.tar.gz /work/ssh/compressed
解压安装包:
# cd /work/ssh/
# tar zxvf zlib-1.2.3.tar.gz -C ../compressed
# tar zxvf openssl-0.9.8e.tar.gz -C ../compressed
# tar zxvf openssh-4.6p1.tar.gz –C ../compressed
交叉编译 zlib:
# cd /work/ssh/source/zlib-1.2.3
# ./configure --prefix=/work/ssh/install/zlib-1.2.3
# vim Makefile
CC=arm-none-linux-gnueabi-gcc
AR=arm-none-linux-gnueabi-ar rc
CPP =arm-none-linux-gnueabi-gcc -E
LDSHARED=arm-none-linux-gnueabi-gcc
# make
# make install
交叉编译openssl
# cd /work/ssh/source/openssl-0.9.8e
# ./Configure --prefix=/work/ssh/install/openssl-0.9.8e os/compiler:arm-none-linux-gnueabi-gcc
# make
# make install
交叉编译openssh
# cd /work/ssh/source/ openssh-4.6p1
#./configure --host=arm-none-linux-gnueabi --with-libs --with-zlib=/work/ssh/install/zlib-1.2.3 --with-ssl-dir=/work/ssh/install/openssl-0.9.8e --disable-etc-default-login
CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar
#make
注意:openssh不需要make install
3.操作目标板
3.1确保目标板上有以下目录,若没有,则新建:
/usr/local/etc/
/var/empty/
3.2从PC机上将以下文件拷贝到目标板Linux系统中
PC机 /work/ssh/source/openssh-4.6p1/ 目录下的
sshd_config拷贝到目标板
/usr/local/etc
sshd 拷贝到目标板
libz.so.1 拷贝到目标板 /lib/目录下
注意:sshd的启动必须使用绝对路径寻址
[b]3.3生成Key文件
在PC机 /work/ssh/source/openssh-4.6p1/ 目录下运行:
ssh-keygen -t rsa -N ""
[/b]
注意:ssh-keygen的生成路径也必须使用绝对路径寻址
3.4修改目标板passwd文件。
在/etc/passwd 中添加下面这一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
测试:
主机上:
#ssh root@192.168.0.34(开发板的ip)
自动登录(免密码,用户名)说明:
使用ssh-keygen将产生密钥对
将公钥导入到服务器的认证池:cat
id_rsa.pub >> ~/.ssh/authorized_keys
将私钥导入到本机认证池:cat
id_rsa >> .ssh/authorized_keys
本机使用:[b]ssh
root@192.168.0.34(开发板的ip)免密登录服务器[/b]
如果authorized_keys文件、$HOME/.ssh目录
或 $HOME目录让本用户之外的用户有写权限,那么sshd都会拒绝使用 ~/.ssh/authorized_keys 文件中的key来进行认证的。
其他注意点:
不要使用新版文件,会编译不过
建议使用旧版ssh: openssh从6.5版本开始,使用openssl
源码编译的时候,必须使用动态库(在openssh 6.4之前的版本中没这种情况);
新版的openssl的Comfigure无法设置os/compiler,需要使用旧版
解压文件命令很简单 :
.tar.gz 格式解压为 tar -zxvf xx.tar.gz
.tar.bz2 格式解压为 tar -jxvf xx.tar.bz2
.7z格式解压为 7z x xx.7z
相关文章推荐
- arm交叉编译 sshd服务器让外界登陆。
- 交叉编译apache服务器for ARM Linux
- 交叉编译apache服务器for ARM Linux
- 嵌入式web服务器lighttpd的交叉编译及配置(for arm-linux)
- 交叉编译apache服务器for ARM Linux
- arm交叉编译 sshd服务
- Web服务器:live555在arm linux下的交叉编译,并下载的Arm板播放H264文件
- 交叉编译场景分析(arm-linux)(四)--编译readline和ncurses
- arm-linux-gnueabihf编译器在ubuntu环境下交叉编译opencv2.4.10
- 用crosstool-ng建立Linux交叉编译环境(以S3C2440(armv4t)为例)
- arm-vfp-linux-gnu交叉编译工具安装
- 一套完整的ARM交叉编译环境的搭建过程——不使用现成的工具链
- fedora 14和ubuntu10.0.4安装交叉编译工具arm-linux-gcc
- arm-linux-gcc交叉编译工具的安装
- 交叉编译工具[arm-linux-gcc and arm-elf-gcc]
- [树莓派2]--arm-linux交叉编译环境的建立
- vmware虚拟机上ubuntu操作系统安装arm-linux-gcc交叉编译环境
- 交叉编译strace工具到arm 平台at91sam9260 和hisi3512
- 交叉编译工具链的arm-elf-tools的正确安装(fedora7虚拟机环境)
- ubuntu下交叉编译环境构建(arm-linux-gcc-3.4.1.tar.bz2 )