移植OPENSSH

http://www.nenew.net/openssh-port-arm9-board.html
http://blog.sina.com.cn/s/blog_7f2a9a390100xws4.html

openssh  
http://www.openssh.com/portable.html
openssl   http://www.openssl.org/source
zlib          http://www.zlib.net/

ZLIB

# ./configure --prefix=/work/ssh/install/zlib-1.2.3

OPENSSL

# ./Configure --prefix=/work/ssh/install/openssl-0.9.8e  os/compiler:arm-9tdmi-linux-gnu-gcc 

OPENSSH

$./configure --host=arm-linux --prefix=/usr
 --with-zlib=/work/ssh/install/zlib-1.2.3   --with-ssl-dir=
/work/ssh/install/openssl-0.9.8e

 --disable-etc-default-login --disable-strip 
CC=arm-linux-gcc AR=arm-linux-ar
$make
$make DESTDIR=`pwd`/_install
 

移动

1。cp _install/* / -a
2。 在/etc/passwd 中添加下面这一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
3。chown root:root /var/empty
4. 配置ssh key了
	
	
  
  
  1. cd /usr/etc 
  2. ssh-keygen -t rsa1 -f ssh_host_key -N "" 
  3. ssh-keygen -t rsa -f ssh_host_rsa_key -N "" 
  4. ssh-keygen -t dsa -f ssh_host_dsa_key -N "" 
  5. ssh-keygen -t ecdrsa -f ssh_host_ecdsa_key -N "" 
5.启动sshd,绝对路径
/usr/sbin/sshd



问题总结

1.运行sshd时出现
sshd: /lib/libc.so.6: version `GLIBC_2.7' not found (required by sshd) 

问题分析:说明你编译等时候指定等glibc和目标板所使用的不一致。
解决办法:配置openssh,即./configure时,使用对用等--host参数,如--host=arm-linux/arm-none-linux-gnueabi。

2.make openssl的时候,指定的prefix目录已经存在,无法创建。
问题分析:这是因为在prefix目录的时候,使用了相对路径,如../../install。
解决办法:openssl需要用指定绝对路径来安装,prefix参数应该如:--prefix=/work/ssh/install/openssl-1.0.0

3.使用arm-2007q3-51-arm-none-linux-gnueabi.bin的make编译ssh和gdbserver时出错:
/root/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
make: *** [example] 错误 1


问题解析:
cannot find -lgcc_s,即没有发现-libgcc_s.so。

解决办法:
可能一解决:查找/root/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/libc/lib目录,如果有libgcc_s.so.1,做一个链接:ln -s libgcc_s.so.1 libgcc_s.so,重新make,此问题可以解决。如果再出现以下问题:

同理,其他的问题,也在/arm-none-linux-gnueabi/libc/lib目录下,
问题:cannot find /lib/libc.so.6 inside,解决:ln -s libc-2.5.so libc.so.6
问题:cannot find /lib/ld-linux.so.3 inside,解决:ln -s ld-2.5.so ld-linux.so.3

4.用nfs从主机复制到目标板时出现:
cp: omitting directory '/etc/boa'
等错误。

问题分析:权限不够,或者目标板中等/usr/local/etc已经有文件。
解决办法:在cp命令后加-r参数,如:cp -r /etc/* /usr/local/etc/

5.运行sshd时出现:
Could not load host key: /usr/local/etc/ssh_host_dsa_key
Could not load host key: /usr/local/etc/ssh_host_ecdsa_key


问题解析:在/usr/local/etc目录中没有相应等key。
解决办法:按照操作步骤,运行:
                 ssh-keygen -t dsa -f ssh_host_das_key -N ""
                 ssh-keygen -t ecdsa -f ssh_host_ecdas_key -N ""
生成ssh_host_das_key 和ssh_host_ecdas_key后复制到目标板/usr/local/etc/目录下。

6.从nfs复制key文件到usr/local/etc时出现:
cp: can't open 'ssh_host_dsa_key': Permission denied

问题分析:目标板复制权限不够。
解决办法:在主机中修改他们等权限为777,命令:chmod 777 *     。然后再复制。

7.Privilege separation user sshd does not exist
//需要在开发板的系统里adduser shhd
//或者在/etc/passwd 中添加下面这一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

8.Permissions 0755 for '/usr/local/etc/ssh_host_dsa_key' are too open.
//则把目标板/usr/local/etc/下的ssh_host_*几个文件的权限改为700。如果出现权限不够问题,用su - root进入root用户再改。
命令:#chmod 700 ssh_host_*

9.Permission denied (publickey,password,keyboard-interactive).
//打开开发板/usr/local/sshd_config,将PermitRootLogin yes前的注释“#”号去掉。


10.configure配置openssh的时候出错:
configure: error: *** zlib missing - please install first or check config.log ***
问题分析:没有找到zlib。
问题解决:重新交叉编译zlib,再configure即可。

11.以下两个函数没找到:
/home/arm/ssh-omap/source/openssh-5.8p2/ssh-keygen.c:1410: undefined reference to `pkcs11_init'
/home/arm/ssh-omap/source/openssh-5.8p2/ssh-keygen.c:1493: undefined reference to `pkcs11_terminate'

问题解决:
打开ssh-keygen.c:vi ssh-keygen.c
屏蔽这1410和1493这两行函数。

12.开启sshd后,没有找到sftp-server服务。如DS-5软件在连接时就出现以下错误,虽然还可以用终端,不过不能传输文件,还是很不爽的:
Failed to connect SFTP subsystem: Remote host may not have sftp-server installed : java.io.IOException: inputstream is closed

问题分析:明显的,这是没有找到sftp子服务。
问题解决:打开/usr/local/etc/sshd_config,找到这么一行:
Subsystem sftp /usr/libexec/sftp-server
看出问题了吧?配置文件中指明的sftp子服务并不是我们放的目录,所以修改为:
Subsystem sftp /usr/loca
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(687) | 评论(0) | 转发(0) |
0

上一篇:?pushd,popd不能用

下一篇:X11远程显示

给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kelsel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值