您的位置:首页 > 其它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: