免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 969 | 回复: 0
打印 上一主题 下一主题

SSH系列1: OpenSSH移植 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-24 15:03 |只看该作者 |倒序浏览
    SSH使用公钥密码学进行端到端通信的加密,并且相当容易使用和部署。我现在移植的是openssh,参考的文章主要是:
http://blog.chinaunix.net/u1/43047/showart_371372.html
。这篇文章描述非常详细,只是在编译成功之后,我认为好多部分是没有必要的。所以结合上面文章和《构建嵌入式Linux系统》来总结一下。

(1)下载

openssh-4.6p1.tar.gz     
http://www.openssh.com/portable.html
openssl-0.9.8e.tar.gz   
http://www.openssl.org/source
zlib-1.2.3.tar.gz        
http://www.zlib.net/

(2)编译

    赞一句,该作者的处理方式非常好,和《构建嵌入式Linux系统》上一样优秀。主要思想就是压缩包在单独目录内,源码包和编译在一个目录内,安装目标在一个目录内。这样就省却了很多麻烦。

    ·编译zlib

[root@lqm zlib-1.2.3]# ./configure --prefix=/home/armlinux/fs/utilities/ssh/install/zlib-1.2.3

--- Makefile.orig 2008-03-24 14:44:48.000000000 +0800
+++ Makefile 2008-03-24 14:45:33.000000000 +0800
@@ -16,7 +16,8 @@
# To install in $HOME instead of /usr/local, use:
# make install prefix=$HOME
-CC=gcc
+CROSS=/usr/local/arm/3.4.1/bin/arm-linux-
+CC=$(CROSS)gcc
CFLAGS=-O3 -DUSE_MMAP
#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
@@ -25,15 +26,15 @@
# -Wstrict-prototypes -Wmissing-prototypes
LDFLAGS=-L. libz.a
-LDSHARED=gcc
-CPP=gcc -E
+LDSHARED=$(CROSS)gcc
+CPP=$(CROSS)gcc -E
LIBS=libz.a
SHAREDLIB=libz.so
SHAREDLIBV=libz.so.1.2.3
SHAREDLIBM=libz.so.1
-AR=ar rc
+AR=$(CROSS)ar rc
RANLIB=ranlib
TAR=tar
SHELL=/bin/sh

    然后make; make install

    ·编译openssl

[root@lqm openssl-0.9.8e]# ./Configure --prefix=/home/armlinux/fs/utilities/ssh/install/openssl-0.9.8e os/compiler:/usr/local/arm/3.4.1/bin/arm-linux-gcc

    然后make; make install

    ·编译openssh

[root@lqm openssh-4.6p1]# ./configure --host=arm-linux --with-libs --with-zlib=/home/armlinux/fs/utilities/ssh/install/zlib-1.2.3 --with-ssl-dir=/home/armlinux/fs/utilities/ssh/install/openssl-0.9.8e --disable-etc-default-login CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc AR=/usr/local/arm/3.4.1/bin/arm-linux-ar

    配置完成,然后make,主要不要安装。

    ·首先把sshd复制到目标板的根文件系统的/usr/sbin,提前进行strip处理(约1.4M,比较大)。

    其次,需要建立文件夹/usr/local/etc/。然后把openssh目录下的sshd_config拷贝到该文件夹下面。否则出现错误:

/usr/local/etc/sshd_config: No such file or directory

    ·再次,在主机上产生密钥。按照《构建嵌入式Linux系统》的做法,会出现问题:

Could not load host key: /usr/local/etc/ssh_host_rsa_key
Could not load host key: /usr/local/etc/ssh_host_dsa_key

    所以,修改的方案为:

[root@lqm nfs]# ssh-keygen -t rsa1 -f ssh_host_key -N ""
[root@lqm nfs]# ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
[root@lqm nfs]# ssh-keygen -t dsa -f ssh_host_dsa_key -N ""

    放到/usr/local/etc中。

    ·建立目录/var/run /var/empty/sshd,并设定权限chmod 755 /var/empty

    ·增加sshd用户。

    这个我是从host上拷贝,然后保留必要的用户,得到的。这样不会出问题。

    ·启动时,应该使用绝对路径。

    这样就可以正常启动了。只不过我在测试的时候,发现连接速度没有在host快。相对来说,这个sshd占用空间也大了很多,应该可以寻求替代方案。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21948/showart_506254.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP