dropbear ssh怎么限定的客户端数量

  Dropbear是一个相对较小的SSH服务器和客户端。它运行在一个基于POSIX的各种平台。 Dropbear是开源软件,在麻省理工学院式的许可证。 Dropbear是特别有用的“嵌入”式的Linux(或其他Unix)系统,如无线路由器。
技术/dropbear
  dropbear实现安全Shell(SSH)协议版本2。[ 2 ]
  加密算法使用第三方加密库包含在Dropbear分配内部实施。它源于一些地方的OpenSSH来处理风格的。[
功能/dropbear
  dropbear实现完整的SSH客户端和服务器版本2协议。它不支持SSH版本1 的向后兼容性,以节省空间和资源,并避免在SSH版本1的固有的安全漏洞。还实施了SCP的。SFTP支持依赖于一个二进制文件,可以通过提供的OpenSSH或类似的计划。
配置/dropbear
  1.dropbear的安装依赖zlib连接库
  下载:zlib-1.2.3.tar.gz
  安装:tar xzvf zlib-1.2.3.tar.gz
  cd zlib-1.2.3
  ./configure (根据实际情况使用--prefix=PATH,--host=HOST等选项)
  make install
  2.安装dropbear
  tar xzvf dropbear-2012.55.tar.gz
  cd dropbear-2012.55
  ./configure
  make scp
  make install
  生成server key:
  cd /etc
  mkdir dropbear
  cd dropbear
  /usr/local/bin dropbearkey -t rsa -f dropbear_rsa_host_key
  /usr/local/bin dropbearkey -t dss -f dropbear_dss_host_key
  3.启动
  ./dropbear -p 6700(监听6700端口)
  4.帮助
  ./dropbear -h
  5.注意
  安装dropbear的时候,生成了dbclient和scp,另外还有dropbearkey和dropbearconvert
  其中:
  Dropbearkey是用来生成公钥的,
  Dropbearconvert是用来与openssh转换的
  Dbclient可以用来连接远程的服务器
  Scp可以向远程的服务器写文件和取文件
  Dbclient的用法,例如
  #./dbclient username@192.168.99.214
  Scp的用法,例如:
  #./scp /home/bin/a.log username@192.168.99.214:/home/working
&|&相关影像
互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于。
登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。
此词条还可添加&
编辑次数:4次
参与编辑人数:4位
最近更新时间: 15:53:40
贡献光荣榜chen 的BLOG
用户名:chen
文章数:25
访问量:1303
注册日期:
阅读量:5863
阅读量:12276
阅读量:363203
阅读量:1058712
51CTO推荐博文
编译安装下载dropbear、并解压#&wget&http://matt.ucc.asn.au/dropbear/releases/dropbear-2015.67.tar.bz2&
#&tar&xvf&dropbear-2015.67.tar.bz2
#&cd&dropbear-2015.67
#&./configure&--prefix=/usr/local/dropbear&--sysconfdir=/etc/dropbear编译安装dropbear,要指定安装dropbear的哪些程序#&make&PROGRAMS="dropbear&dbclient&dropbearkey&dropbearconvert&scp"
#&make&PROGRAMS="dropbear&dbclient&dropbearkey&dropbearconvert&scp"&install安装完成后没有/etc/dropbear,还要有/etc/dropbear/dropbear_dss_host_key和/etc/dropbear/dropbear_rsa_host_key文件&&&&&&&&-t 指定类型 -f 指定安装到那#&mkdir&/etc/dropbear
#&/usr/local/dropbear/bin/dropbearkey&-t&dss&-f&/etc/dropbear/dropbear_dss_host_key
#&/usr/local/dropbear/bin/dropbearkey&-t&rsa&-s&4096&-f&/etc/dropbear/dropbear_rsa_host_key现在可以启动dropbear#&/usr/local/dropbear/sbin/dropbear&-p&2222&&&&&&&&#监听在2222端口
#&ps&aux&|&grep&dropbear&&&&&&&&#服务已经启动了
root&&&&&2&&0.0&&15300&&&536&?&&&&&&&&Ss&&&17:50&&&0:00&/usr/local/dropbear/sbin/dropbear&-p&2222
root&&&&&2&&0.0&103256&&&856&pts/2&&&&S+&&&17:51&&&0:00&grep&dropbear
#&netstat&-tnlp&&&&&&&&#2222端口开始监听
Active&Internet&connections&(only&servers)
Proto&Recv-Q&Send-Q&Local&Address&&&&&&&&&&&&&&&Foreign&Address&&&&&&&&&&&&&State&&&&&&&PID/Program&name&&&
tcp&&&&&&&&0&&&&&&0&127.0.0.1:8307&&&&&&&&&&&&&&0.0.0.0:*&&&&&&&&&&&&&&&&&&&LISTEN&&&&&&2861/vmware-hostd&&&
tcp&&&&&&&&0&&&&&&0&0.0.0.0:2222&&&&&&&&&&&&&&&&0.0.0.0:*&&&&&&&&&&&&&&&&&&&LISTEN&&&&&&25377/dropbear&&&&&&&&&&&&&
tcp&&&&&&&&0&&&&&&0&:::22&&&&&&&&&&&&&&&&&&&&&&&:::*&&&&&&&&&&&&&&&&&&&&&&&&LISTEN&&&&&&2576/sshd&&&&&&&&&&&&&&&&&&&&&&&
tcp&&&&&&&&0&&&&&&0&:::2222&&&&&&&&&&&&&&&&&&&&&:::*&&&&&&&&&&&&&&&&&&&&&&&&LISTEN&&&&&&25377/dropbear&
#&ss&-tanl
tate&&&&&&&Recv-Q&Send-Q&&&&&&&&&&&&&&&&&&&&&&&&&&&Local&Address:Port&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Peer&Address:Port&
LISTEN&&&&&&0&&&&&&100&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&:::2222&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&:::*&&&&&
LISTEN&&&&&&0&&&&&&100&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*:2222&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*:*换一个端口Xshell&:\&&ssh&192.168.1.9&2222&&&&&&&&#可以连接不想用ssh服务,回到原端口#&chkconfig&sshd&off&&&&&&&&#默认开机不启动
#&service&sshd&stop服务脚本的编写想让dropbear开机启动,换到2222端口#&vim&/etc/rc.d/rc.local
/usr/local/dropbear/sbin/dropbear&-p&2222&&&&#能启动,但是不能关闭,写个服务脚本#&vim&/etc/sysconfig/dropbear&&&
#&vim&/etc/rc.d/init.d/dropbear
#!/bin/bash
#&chkconfig:&&&&&默认级别&&&&启动级别&&&&关闭级别
#&description:&lightweight&ssh2&implementation
[&-r&/etc/rc.d/init.d/functions&]&&&&.&/etc/rc.d/init.d/functions
[&-f&/etc/sysconfig/dropbear&]&&&&.&/etc/sysconfig/dropbear
dsskey=/etc/dropbear/dropbear_dss_host_key
rsakey=/etc/dropbear/dropbear_rsa_host_key
pidfile=/var/run/dropbear.pid
lockfile=/var/lock/subsys/dropbear
dropbearkey=/usr/local/dropbear/bin/dropbearkey
dropbear=/usr/local/dropbear/sbin/dropbear
port=${port:=22}
gendsskey()&{
&&&&if&[&!&-f&$dsskey&];&then
&&&&&&&&$dropbearkey&-t&dss&-f&$dsskey&&&&/dev/null
&&&&&&&&[&$?&-eq&0&]&&&&return&0&||&return&1
&&&&RETVAL=$?
&&&&if&[&$RETVAL&-eq&0&];&then
&&&&&&&&echo&-n&"Generate&dss&key&finished."
&&&&&&&&passed
&&&&&&&&echo
&&&&&&&&return&0
&&&&&&&&echo&-n&"Genrate&dss&key&failed"
&&&&&&&&failure
&&&&&&&&echo
&&&&&&&&exit&6
&&&&&&&&return&0
genrsakey()&{
&&&&if&[&!&-f&$rsakey&];&then
&&&&&&&&$dropbearkey&-t&rsa&-f&$rsakey&-s&2048&&&&/dev/null
&&&&#&&&[&$?&-eq&0&]&&&&return&0&||&return&1&&&&&&&&#这行不需要了
&&&&RETVAL=$?
&&&&if&[&$RETVAL&-eq&0&];&then
&&&&&&&&echo&-n&"Generate&rsa&key&finished."
&&&&&&&&passed
&&&&&&&&echo
&&&&&&&&return&0
&&&&&&&&echo&-n&"Genrate&rsa&key&failed"
&&&&&&&&failure
&&&&&&&&echo
&&&&&&&&exit&6
&&&&&&&&return&0
&&&&gendsskey
&&&&genrsakey&
&&&&if&[&-f&$lockfile&];&then
&&&&&&&&echo&-n&"dropbear&is&already&running."
&&&&&&&&failure
&&&&&&&&echo
&&&&&&&&exit&7
&&&&echo&-n&"Start&dropbear"
&&&&daemon&--pidfile&$pidfile&$dropbear&-p&$port
&&&&RETVAL=$?
&&&&if&[&$RETVAL&-eq&0&];then
&&&&&&&&touch&$lockfile
&&&&&&&&return&0
&&&&&&&&rm&-f&$lockfile&$pidfile
&&&&&&&&return&1
&&&&if&[&!&-f&$lockfile&];&then
&&&&&&&&echo&-n&"dropbear&is&not&running."
&&&&&&&&failure
&&&&&&&&echo
&&&&&&&&exit&8
&&&&echo&-n&"Stop&dropbear:"
&&&&killproc&dropbear
&&&&RETVAL=$?
&&&&[&$RETVAL&-eq&0&]&&&&rm&-f&$lockfile&&&&return&0&||&return&1
case&$1&in&
&&&&start&;;
&&&&start&;;
&&&&exit&3&;;
esac#&service&dropbear&start
Start&dropbear&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[确定]
#&service&dropbear&restart
Stop&dropbear:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[确定]
Start&dropbear&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[确定]
#&service&dropbear&stop
Stop&dropbear:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[确定]本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)移植ssh server dropbear的一点问题 - [ 芯唐ARM技术支持 ] - 嵌入式资料区 -
嵌入式开发联盟
移植ssh server dropbear的一点问题
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
移植ssh server dropbear的一点问题
没有ssh server端在uClinux下,每次调试都需要使用serial console,很麻烦。另外由于项目上的需要,也必须移植ssh服务端,从而能使用ssh远程登录到开发板上。刚开始准备使用sshd,交叉编译后吓我一大跳:至少占用2M的Norflash,W90N745上的Norflash总共也才4M,简直要人老命。由于dropbear在ARM9+Linux上跑得不错,所以ARM7+uClinux下也准备用它了。" @0 e$ m& [* R# k9 i* \7 @
& & 下载源代码并解压:本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。8 s1 I3 o3 `+ y4 s0 y
6 @- e6 w9 ?' x) J6 ^
& & 配置:嵌入式开发联盟! I$ D&&U) U1 U8 E& Z&&c
./configure --disable-largefile --disable-openpty --disable-syslog&&\* e8 K) v. Z& c( Z
--disable-lastlog --disable-utmpx --disable-pututxline --disable-shadow --disable-zlib
如果使用zlib库,不用--disable-zlib,但我的Norflash太小了,就不想要他了。详细的可参考下面的链接& ^! h0 v: D& J8 w" R% S* `
/ D" Y: `/ V& q
配置后修改Makefile,更改交叉编译器部分如下:srcdir=.
prefix=/usr/local
exec_prefix=${prefix}
bindir=${exec_prefix}/bin
sbindir=${exec_prefix}/sbin
BUILD_ROOT=/usr/local/arm_tools_3.3.4
lib1=${BUILD_ROOT}/lib/gcc-lib/arm-elf/3.3.4
lib=${BUILD_ROOT}/arm-elf/lib
include=${BUILD_ROOT}/arm-elf/include/
CC=${BUILD_ROOT}/bin/arm-elf-gcc -O1 -I$(include)&&-D__uClinux__&&-D__USE_BSD=1 -DRUN_ENVIRONMENT_L
INUX -Wl,-elf2flt
AR=${BUILD_ROOT}/bin/arm-elf-ar
RANLIB=${BUILD_ROOT}/bin/arm-elf-ranlib
STRIP=${BUILD_ROOT}/bin/arm-elf-strip
LD=${BUILD_ROOT}/bin/arm-elf-ld
INSTALL=install
CPPFLAGS=
CFLAGS=-I. -I$(srcdir) -I$(srcdir)/libtomcrypt/src/headers/ $(CPPFLAGS)&&-Os -W -Wall
LIBS=$(LTC) $(LTM) -lutil&&-lcrypt
LDFLAGS=-L./ -L${lib} -L${lib1}
#WEC_LDFLAGS=-L./ -L${lib} -L${lib1}
EXEEXT=复制代码3, make或者&&make PROGRAMS=dropbear STATIC=1- 嵌入式底层驱动开发技术学习网站+ U4 h: Z! T% h+ ?; U; j
如果出现下面错误:/usr/local/arm_tools_3.3.4/bin/arm-elf-gcc -L/home/l200/apps/zlib-1.2.3/ -o dropbear dbutil.o buffer.o dss.o bignum.o
signkey.o rsa.o random.o queue.o atomicio.o compat.o&&fake-rfc2553.o common-session.o packet.o common-algo.o common-
kex.o common-channel.o common-chansession.o termcodes.o loginrec.o tcp-accept.o listener.o process-packet.o common-
runopts.o circbuffer.o svr-kex.o svr-algo.o svr-auth.o sshpty.o svr-authpasswd.o svr-authpubkey.o svr-session.o svr-
service.o svr-chansession.o svr-runopts.o svr-agentfwd.o svr-main.o svr-x11fwd.o svr-tcpfwd.o svr-authpam.o&&
libtomcrypt/libtomcrypt.a libtommath/libtommath.a -lutil -lz&&-lcrypt
svr-main.o(.text+0x1ac): In function `$a':
: undefined reference to `daemon'
collect2: ld returned 1 exit status
make: *** [dropbear] Error 1复制代码这是在svr-main 153行daemon()函数并没有定义。daemon()定义在compat.c 161行如下:#ifndef HAVE_DAEMON
&&int daemon(int nochdir, int noclose) {
*******&&//这里有fork()
#endif复制代码HAVE_DAEMON定义在config.h中
这里我并没有测试uClinux下是否有daemon()的实现,如果感兴趣的可以测试一下。#man daemon本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。3 d/ ^$ F7 d
在这里我只是在config.h中去掉对HAVE_DAEMON的定义,然后将compat.c中daemon()函数中的fork()改为vfork()。
然后再编译就OK了。
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。&&p/ e4 a" [; q! g& F" f
这时生成了dropbear, dropbearkey等文件。
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习4 S$ Z&&o* v" q- U" T
将这两个文件放到开发板中,并运行:
首先使用dropbearkey来生成dropbear所需要的两个key文件:嵌入式开发联盟5 v% ], w/ h5 p
root:/info/dropbear& ./dropbearkey -t rsa -f dropbear_rsa_host_key- 嵌入式底层驱动开发技术学习网站; H+ S. w* B0 s
Will output 1024 bit rsa secret key to 'dropbear_rsa_host_key'0 ]4 z3 G( h8 w% z
Generating key, this may take a while...嵌入式开发联盟/ W3 R6 ?) o2 {8 H2 A2 l7 P& R
Exited: couldn't open random device& &//这里报错嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习0 C9 ^- g1 }+ P: F&&u) H
开始以为只是dropbearkey需要random device,于是简单地将ARM+Linux下的dropbear_rsa_host_key,和dropbear_dss_host_key文件copy到开发板的/etc/dropbear下,然后运行:本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。7 e, e. C8 M* N# G2 r, Q: N
root:/info& ./dropbeard
[56] Jan 01 00:07:48 premature exit: couldn't open random device2 j1 }+ Y4 w: M, c! B$ n
嵌入式开发联盟' C* j/ v& @) R& S1 B: Y6 t1 P) p
仍然需要random device, 看看他究竟需要那个设备, 追踪源代码发现在random.c中64行使用DROPBEAR_RANDOM_DEV(定义在option.h中,为/dev/urandom)这个设备,ls /dev/urandom,果然没这个文件。
怎么生成/dev/urandom和/dev/random这两个文件呢?这个文件只是用来生产随机数的,应该会有别的方法来解决。
给上几个链接:
如何创建/dev/random(本人还没试过):$ P/ x) V2 v. C
& &&&& N$ C0 z3 h' j0 y+ F
Dropbear的移植详细文档(经常光顾CalmArrow 的CUbloger了):本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。& V&&i; H8 S0 Z* K( n$ ?
& & 嵌入式开发联盟3 {9 X# c( x6 T0 }
[ 本帖最后由 dglwx 于
17:27 编辑 ]
UID1&帖子4187&积分20611&联盟金币:7629 元&在线时间4595 小时&注册时间&
很简单,你只需要将你的linux-pcserver里面的相应/dev/random拷贝到华邦的romdisk里面就可以了。
UID1&帖子4187&积分20611&联盟金币:7629 元&在线时间4595 小时&注册时间&
我经常这么干的,没有问题。
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
你也copy过/dev/random或/dev/urandom 么?嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习/ B; d5 Y9 t9 C2 ^
& &这两个文件copy过来只是普通文件,如果愿意的话,可以直接挤爆硬盘,我copy了两分钟,结果得到了一个434M的普通文件。
[root@redhatvm dev]# cp /dev/urandom .& &//这里ctrl+c结束的嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习+ i- W# e0 q( [- k" ]( A
嵌入式开发联盟; e: g# l3 h) j/ Z2 j$ s
[root@redhatvm dev]# du -h urandom 嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习+ R8 _* j: u5 C+ G$ M
434M& & urandom
& &看来并不是copy这么简单,这个设备应该只是个logic device,就像/dev/null一样,他们的主设备号都是1:
[root@redhatvm dev]# ls random urandom -l&&
crw-r--r--& & 1 root& &&&root& && & 1,& &8 Jan 30&&2003 random8 }( e9 s, t" ]7 b
crw-r--r--& & 1 root& &&&root& && & 1,& &9 Jul&&3 08:29 urandom
[root@redhatvm dev]# ls null -l&&x% h7 S3 f9 D/ @4 n
crwxrwxrwx& & 1 root& &&&root& && & 1,& &3 Jan 30&&2003 null嵌入式开发联盟6 H# U$ y2 }# E3 X
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。% R3 ]# }' K4 V& N: M&&e
[ 本帖最后由 dglwx 于
09:16 编辑 ]
UID1&帖子4187&积分20611&联盟金币:7629 元&在线时间4595 小时&注册时间&
我没有碰到cp几百M的情况,我就是直接cp过去的。
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
/dev/random这个文件内容本来就是不断变化的,如有键盘,鼠标中断产生就会根据这些中断来产生随机数。本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。" m! B, z5 X- L4 R, o7 Y# r9 K&&D
& &不过我使用* l. ?/ J1 d5 C7 P' p
& &mknod --mode=666 random c 1 8- 嵌入式底层驱动开发技术学习网站: g+ R# X# k6 h+ [/ a! ?0 ~4 r
& &mknod --mode=666 urandom c 1 9嵌入式开发联盟6 `+ P5 u" T/ r$ x, j2 U' @! j
生成这两个文件现在OK了。
昨天使用主设备好为253,结果不行,看来主设备1应该是逻辑设备,由内核来维护的。现在
#cat /dev/urandom也出现了许多随机字符来。dropbear也跑起来了,不过还有地方的fork()没改成vfork();报错如下:本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。5 j&&s# ]1 J3 {&&v8 m$ S8 @& s
[28] Jan 01 00:00:52 error forking: Function not implemented- 嵌入式底层驱动开发技术学习网站0 t: w&&F5 U; w8 r* }' |
[28] Jan 01 00:01:39 error forking: Function not implemented
- T, s2 f" N0 k5 b&&K
追踪源代码发现是在svr-main.c 的269行。现在改为vfork()后再运行报错如下:- 嵌入式底层驱动开发技术学习网站, c! F( O% o4 ^! w- m1 B* ~
[43] Jan 01 00:18:42 Failed listening on '22': Error listening: Address already in use/ ]. [! F+ U3 g1 ^
[43] Jan 01 00:18:42 premature exit: No listening ports available.
看看谁占用了:5 ~1 D8 |/ n3 \5 ~+ ]' m
root:/info& netstat -a7 v$ ?- ]&&b5 n, Z# I5 \
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address& && && &&&Foreign Address& && && &State& g0 U2 J% O0 C" Z% R; s1 n1 o
tcp& && &&&0& && &0 0.0.0.0:22& && && && &&&0.0.0.0:*& && && && && &LISTEN& && &
Active UNIX domain sockets (servers and established)嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习! o0 F1 U5 A6 W4 @3 {1 h/ T% n+ c
Proto RefCnt Flags& && & Type& && & State& && && &I-Node Path嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习- U/ {! C&&`/ \- r+ r7 A& ]" J
妈的,不知道是那个东西把22号端口给占用了,ssh一般都是用他的。另外现在运行syslogd的时候也会报地址错误,估计原因和他差不多:1 |0 `# l1 x' \) _3 k
root:/info& syslogd -n- 嵌入式底层驱动开发技术学习网站: }6 V# Z$ k9 w& W
syslogd: bind: Address already in use6 P& y( e( a7 b! i& [
- 嵌入式底层驱动开发技术学习网站. f/ O" D/ r/ a1 D: E' j
看来22这个端口号是个抢手货!&&U) j- u0 Q&&}" v7 `2 q3 G
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习3 c! Z* g) l6 }& L8 x&&g% U/ F
[ 本帖最后由 dglwx 于
10:04 编辑 ]
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
现在dropbear能够运行了,只是我的SecureCRT每次连接的时候,dropbear都会报段错误,下面是我的调试信息:! @+ Y: e5 }: F
root:/info& ./dropbeard -F -v1 f&&x$ N( r/ G. K/ R. l+ I
TRACE: enter loadhostkeys
TRACE: enter buf_get_priv_key- 嵌入式底层驱动开发技术学习网站. |2 I&&N# O$ C) G" ^
TRACE: enter rsa_key_free
TRACE: leave rsa_key_free: key == NULL
TRACE: enter buf_get_rsa_priv_key嵌入式开发联盟' i+ i& R3 V1 T# Z6 C
TRACE: enter buf_get_rsa_pub_key- 嵌入式底层驱动开发技术学习网站* @- }- i4 `1 \5 l
TRACE: leave buf_get_rsa_pub_key: success- 嵌入式底层驱动开发技术学习网站0 S: t4 D" Z: B' [" w
TRACE: leave buf_get_rsa_priv_key
TRACE: leave buf_get_priv_key
TRACE: enter buf_get_priv_key
TRACE: enter dsa_key_free
TRACE: enter dsa_key_free: key == NULL
TRACE: enter buf_get_dss_pub_key
TRACE: leave buf_get_dss_pub_key: success
TRACE: leave buf_get_priv_key3 a! j' Z9 c&&f# Y&&[: \
TRACE: leave loadhostkeys
TRACE: listensockets: 1 to try嵌入式开发联盟&&I! }$ F4 Q" j' k$ E
TRACE: listening on ':22'
TRACE: enter dropbear_listen嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习) g3 d2 ?; ?+ t+ ]: K* \/ R" m
TRACE: dropbear_listen: all interfaces嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习/ P- S$ w&&L2 N3 p9 n8 ~% _
TRACE: bind(22) failed
TRACE: leave dropbear_listen: success, 1 socks bound本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。&&B: f# S& F0 [
[28] Jan 01 00:01:24 Not backgrounding0 Q/ e9 V. Q# H. \$ r% Q: l- }
[29] Jan 01 00:02:16 Child connection from 192.168.1.208:1805嵌入式开发联盟; @# I8 c0 u% w5 v4 h0 x
TRACE: enter session_init
TRACE: setnonblocking: 3
TRACE: leave setnonblocking
TRACE: setnonblocking: 5( i/ U7 @) P& j' F# R% ?
TRACE: leave setnonblocking0 V' N# M3 I5 O2 C2 |" P$ L
TRACE: kexinitialise()
TRACE: leave session_init# o2 h3 t# R" H0 H&&d8 Z
TRACE: enter ident_readln
TRACE: leave ident_readln: return 46
TRACE: remoteident: SSH-2.0-SecureCRT_5.5.0 (build 371) SecureCRT嵌入式开发联盟& o. Y8 V' z1 q" Y' l5 t
TRACE: enter encrypt_packet()
TRACE: encrypt_packet type is 20
TRACE: enter writemac- 嵌入式底层驱动开发技术学习网站. ?, l$ H; ?. I7 Q" F
TRACE: leave writemac
TRACE: enter enqueue
TRACE: leave enqueue
TRACE: leave encrypt_packet()
TRACE: DATAALLOWED=0
TRACE: -& KEXINIT本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。6 X0 L: F: I: y! r: t* z' s
TRACE: enter write_packet
TRACE: empty queue dequeing嵌入式开发联盟. P$ o2 c1 b! M3 [) {; @
TRACE: leave write_packet' n% \/ d& E: ?$ J. W, ?
TRACE: enter read_packet嵌入式开发联盟$ J&&W1 |, F* l
TRACE: enter decrypt_packet
TRACE: leave decrypt_packet嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习9 T9 h( w3 ~8 z4 E0 f! A" u
TRACE: leave read_packet
TRACE: enter process_packet
TRACE: process_packet: packet type = 20; A- K8 |9 R: S& X- ?6 a- O
TRACE: &- KEXINIT
TRACE: enter recv_msg_kexinit嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习; b$ h' ]+ U" T& p) E4 q$ K
TRACE: buf_match_algo: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
TRACE: kex algo diffie-hellman-group1-sha1. b% u3 z/ ~) M4 ~: m' a" z/ d
TRACE: buf_match_algo: ssh-dss,ssh-rsa,x509v3-sign-rsa,x509v3-sign-dss嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习3 x, Q$ I* z- n8 b1 [+ u2 c" d* h% \" x7 J
TRACE: hostkey algo ssh-dss- 嵌入式底层驱动开发技术学习网站! q/ W7 `+ _, M
TRACE: buf_match_algo: aes256-cbc,aes192-cbc,aes128-cbc,twofish-cbc,blowfish-cbc,3des-cbc,arcfour- 嵌入式底层驱动开发技术学习网站; ?% A& j7 g4 O+ u( l4 T4 E+ z
TRACE: enc c2s is&&aes256-cbc嵌入式开发联盟/ a( `. |6 g8 Z, O) ^3 k2 i# E
TRACE: buf_match_algo: aes256-cbc,aes192-cbc,aes128-cbc,twofish-cbc,blowfish-cbc,3des-cbc,arcfour嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习8 [9 F8 ^8 P" x. g! q1 u( T' H, D
TRACE: enc s2c is&&aes256-cbc- 嵌入式底层驱动开发技术学习网站$ ~/ ]# W0 s8 o7 k' Z: J8 d
TRACE: buf_match_algo: hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习$ }; N( W, R; o& Y# k. g
TRACE: hash c2s is&&hmac-sha1嵌入式开发联盟0 S&&P# S# Y, R6 F. S6 t
TRACE: buf_match_algo: hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-966 s- c$ E# ]. T- m& t! Z' K
TRACE: hash s2c is&&hmac-sha1
TRACE: buf_match_algo: none9 R/ P5 H( P" ~
TRACE: hash c2s is&&none
TRACE: buf_match_algo: none, J2 A* N7 ]# A" t! z
TRACE: hash s2c is&&none
TRACE: leave recv_msg_kexinit
TRACE: leave process_packet
TRACE: maybe_empty_reply_queue - no data allowed1 @&&u% X7 i( s2 Y2 o+ u
TRACE: enter read_packet
TRACE: enter decrypt_packet6 Q/ f' B- ?9 Y, b: k( X
TRACE: leave decrypt_packet
TRACE: leave read_packet
TRACE: enter process_packet嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习" D# R+ h( T0 h
TRACE: process_packet: packet type = 30
TRACE: enter recv_msg_kexdh_init- 嵌入式底层驱动开发技术学习网站+ t/ y&&N- L$ Q% U) m/ s4 t
TRACE: enter send_msg_kexdh_reply嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习0 [- L8 {3 v5 E' a* k: @
TRACE: enter send_msg_kexdh_reply. T/ V6 A; m3 D
TRACE: enter buf_put_pub_key
TRACE: enter buf_putmpint嵌入式开发联盟1 z# i2 G9 y8 B1 G! v" v0 V
TRACE: leave buf_putmpint
TRACE: enter buf_putmpint嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习+ e1 ^) S, q, i. L( D
TRACE: leave buf_putmpint& C/ z1 i- q) s
TRACE: enter buf_putmpint
TRACE: leave buf_putmpint
TRACE: enter buf_putmpint" \$ B6 O; q# O$ E/ b
TRACE: leave buf_putmpint本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。# \8 H8 m, g' e. ]# v' ?
TRACE: leave buf_put_pub_key- 嵌入式底层驱动开发技术学习网站# Y1 F/ j0 T/ z&&N4 C/ L) K# J8 _
TRACE: enter buf_putmpint嵌入式开发联盟) u. |+ \$ b. M, X: n
TRACE: leave buf_putmpint本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。+ F4 o: C- X4 g& p
TRACE: enter buf_putmpint
TRACE: leave buf_putmpint% Y" P4 n5 G4 x# W( O) C& S
TRACE: enter buf_putmpint
TRACE: leave buf_putmpint
TRACE: enter buf_put_pub_key本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。* N% Z5 M& J' d) ^& G& H" d6 I
TRACE: enter buf_putmpint
TRACE: leave buf_putmpint嵌入式开发联盟. o3 W- q0 t. {& G6 c
TRACE: enter buf_putmpint
TRACE: leave buf_putmpint
TRACE: enter buf_putmpint
TRACE: leave buf_putmpint' v4 K* w, g4 E7 m+ B* K
TRACE: enter buf_putmpint
TRACE: leave buf_putmpint本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。* t5 ^3 V4 l- H&&f* G0 _2 i" f
TRACE: leave buf_put_pub_key嵌入式开发联盟* R5 j* A7 \' ~, z' B
TRACE: enter buf_putmpint/ M9 v0 Y8 c# A&&X. k
TRACE: leave buf_putmpint
TRACE: enter buf_put_dss_sign嵌入式开发联盟9 v) F" h) O4 G, g$ J" u9 f5 U
TRACE: leave buf_put_dss_sign
TRACE: enter encrypt_packet()
TRACE: encrypt_packet type is 31, i' M9 a: ?5 o: ?( {* V2 p
TRACE: enter writemac
TRACE: leave writemac
TRACE: enter enqueue- 嵌入式底层驱动开发技术学习网站9 S3 R- g&&s) D- J
TRACE: leave enqueue/ o- }! i2 E+ O5 A7 A, ^# c
TRACE: leave encrypt_packet()
TRACE: leave send_msg_kexdh_reply* O) d, ^&&\/ i9 R2 x3 d
TRACE: enter send_msg_newkeys
TRACE: enter encrypt_packet()
TRACE: encrypt_packet type is 21
TRACE: enter writemac
TRACE: leave writemac
TRACE: enter enqueue
TRACE: leave enqueue嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习; ~4 P3 A; V1 f8 M6 o. [% y
TRACE: leave encrypt_packet()
TRACE: SENTNEWKEYS=1
TRACE: -& MSG_NEWKEYS嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习% _1 W: Q1 S" O&&m+ Y
TRACE: leave send_msg_newkeys嵌入式开发联盟( Z' Y& j2 Y% r: F+ ~
TRACE: leave recv_msg_kexdh_init- 嵌入式底层驱动开发技术学习网站' d! Z" l$ _0 @) |2 i
TRACE: leave process_packet9 G" @7 O: f8 p: |( l
TRACE: maybe_empty_reply_queue - no data allowed
TRACE: enter write_packet
TRACE: leave write_packet本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。+ w: `6 `; @9 X, z4 T6 a
TRACE: maybe_empty_reply_queue - no data allowed
TRACE: enter write_packet嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习7 a- p# K6 E- a) K
TRACE: empty queue dequeing
TRACE: leave write_packet/ i- y&&j3 ?: A&&x( T; O- B0 {, O
TRACE: maybe_empty_reply_queue - no data allowed
TRACE: enter read_packet
TRACE: enter decrypt_packet
munmap of non-mmaped memory by process 29 (dropbeard): 0059cda0
munmap of non-mmaped memory by process 29 (dropbeard): 0059cf207 S. i* M! d&&E&&B' p* n- k! w
munmap of non-mmaped memory by process 29 (dropbeard): 0059cce0- 嵌入式底层驱动开发技术学习网站( @: F6 T/ p! G
munmap of non-mmaped memory by process 29 (dropbeard): 0059cb40嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习( w! M+ n/ f4 U' L6 K
TRACE: leave decrypt_packet嵌入式开发联盟( z6 |7 ~# J0 e* {( o
TRACE: leave read_packet嵌入式开发联盟8 e: S# w# V0 P& M: [8 f- n
TRACE: enter process_packet嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1 h3 ~7 G&&b$ W0 u! H6 N
TRACE: process_packet: packet type = 21
TRACE: &- MSG_NEWKEYS
TRACE: enter recv_msg_newkeys
TRACE: while SENTNEWKEYS=1
TRACE: enter gen_new_keys
TRACE: enter buf_putmpint嵌入式开发联盟# ]2 V: d) X7 \, A: X8 r9 V
TRACE: leave buf_putmpint8 b/ i0 f3 r3 {+ A
munmap of non-mmaped memory by process 29 (dropbeard): 0059ea00
munmap of non-mmaped memory by process 29 (dropbeard):
munmap of non-mmaped memory by process 29 (dropbeard): 2 k5 u( k' E3 a# h, l
TRACE: leave gen_new_keys嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习% p- W* N% O+ ?: |" u7 u5 [
TRACE: kexinitialise()
TRACE:&&-& DATAALLOWED=1嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习. p. m0 E! C$ i0 J1 {
TRACE: leave recv_msg_newkeys. a8 w: n+ P$ j0 T3 I. I
TRACE: leave process_packet
TRACE: enter read_packet
TRACE: enter decrypt_packet
TRACE: leave decrypt_packet8 p& D" ^4 s! X* d$ O
TRACE: leave read_packet
TRACE: enter process_packet6 U0 g4 Y( K- F
TRACE: process_packet: packet type = 5
TRACE: enter recv_msg_service_request本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。. t8 g&&b* m& n! e&&T, K8 ~! b
TRACE: accepting service ssh-userauth
TRACE: enter encrypt_packet()$ t& @$ L1 J' x" }& L0 `% E& v
TRACE: encrypt_packet type is 6
TRACE: enter writemac
TRACE: leave writemac
TRACE: enter enqueue5 B5 r) M, z+ u! T* n) T4 `
TRACE: leave enqueue- 嵌入式底层驱动开发技术学习网站( w2 j6 m5 U2 \% C0 M
TRACE: leave encrypt_packet()嵌入式开发联盟3 p) _3 t5 u. t, a3 E" t% L
TRACE: leave recv_msg_service_request: done ssh-userauth
TRACE: leave process_packet
TRACE: enter write_packet- 嵌入式底层驱动开发技术学习网站) b( ]: Y- G3 `) p8 U3 Y! m: b' l. _
TRACE: empty queue dequeing
TRACE: leave write_packet
TRACE: enter read_packet
TRACE: enter decrypt_packet嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习% v" g9 w* S, L. T7 M&&^&&h2 ?4 ~
TRACE: leave decrypt_packet嵌入式开发联盟# I! p* c% H1 o, y+ [
TRACE: leave read_packet- 嵌入式底层驱动开发技术学习网站. ?, F&&[5 `6 i# v
TRACE: enter process_packet
TRACE: process_packet: packet type = 50- 嵌入式底层驱动开发技术学习网站1 }" r&&~* o$ W
TRACE: enter recv_msg_userauth_request
TRACE: recv_msg_userauth_request: 'none' request0 g4 T- G2 u% N) Q&&^8 x: e
TRACE: enter send_msg_userauth_failure嵌入式开发联盟. n9 ~( H8 j9 V' _6 r: G8 q( P! O4 \
TRACE: auth fail: methods 6, 'publickey,password'嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习6 I: f. U. H$ C) @
TRACE: enter encrypt_packet()
TRACE: encrypt_packet type is 51
TRACE: enter writemac8 D/ {, ~2 H- E' G$ t
TRACE: leave writemac本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。) f+ I& O( @) S: j% F
TRACE: enter enqueue
TRACE: leave enqueue( Y3 ^9 u: a) |! ^# D- T$ R, q* D
TRACE: leave encrypt_packet()- 嵌入式底层驱动开发技术学习网站2 q6 A7 U, C( W1 c
TRACE: leave send_msg_userauth_failure
TRACE: leave process_packet本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。0 }1 k8 `& ^! y% c- F
TRACE: enter write_packet
TRACE: empty queue dequeing
TRACE: leave write_packet
TRACE: enter read_packet
TRACE: enter decrypt_packet
TRACE: leave decrypt_packet&&M$ @& @- q3 C+ b+ L. X3 l
TRACE: leave read_packet
TRACE: enter process_packet7 s1 u' v( M- ^&&_
TRACE: process_packet: packet type = 50
TRACE: enter recv_msg_userauth_request
TRACE: enter checkusername
TRACE: shell is /bin/msh嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习3 Z&&]: V7 U8 V0 \1 k
Unhandled fault: external abort on linefetch (F4) at 0x
fault-common.c(97): start_code=0x2d8040, start_stack=0x31af48)嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习& [&&k) k5 v! M: M0 Y' U' Z
2 J- ?7 m7 n5 g! x5 \; S+ ?# w
Unhandled fault: external abort on linefetch (F4) at 0x&&//每连接一次,这里就报一次错- 嵌入式底层驱动开发技术学习网站1 Z2 h. }5 {7 |7 g# m+ ^
fault-common.c(97): start_code=0x2d8040, start_stack=0x31af48)
UID1&帖子4187&积分20611&联盟金币:7629 元&在线时间4595 小时&注册时间&
你应该加大你的静态堆栈了,堆栈溢出!
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
可是我已经将内核配置中:
Kernel hacking&&---&
& && &Non power-of-2 kernel allocator (EXPERIMENTAL)
选上了。还怎么加大静态堆栈大小?交叉编译器使用的是最新的那个,没有配置stack-size的选项了吧。
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
这个错误:0 L: Y3 W: m4 J
Unhandled fault: external abort on linefetch (F4) at 0x本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。' Y3 o7 C! ?5 G&&[
fault-common.c(97): start_code=0x2d8040, start_stack=0x31af48)- 嵌入式底层驱动开发技术学习网站5 j- ?: O1 A, C1 c
都是静态堆栈大小不够引起的吗?如果是这样,该如何调整他的大小,是在内核里调整还是在交叉编译器上调整?如何调整?, x% j$ [' ]7 Y- e+ B
google的时候,也有可能是free() 已经释放掉的内存或者调用mmap()(在uclinux里好像没有实现的)。. v&&p1 P8 ~5 f7 C
内核里的( `$ i6 C& v3 r&&O
Non power-of-2 kernel allocator (EXPERIMENTAL)
这个选项是干什么的?应该只是换了个Memory allocator吧? 他能调整堆栈空间大小么?
UID1&帖子4187&积分20611&联盟金币:7629 元&在线时间4595 小时&注册时间&
Non power-of-2 kernel allocator (EXPERIMENTAL)
首先要选上,然后参考华邦的/testapp/thead_demo的makefile的例子,设置elf2flt=“-s 300000”的设置来进行静态堆栈的设置。
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
[root@redhatvm dropbear-0.51]# arm-elf-flthdr -p /mnt/winxp/image/dropbeard 本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。. j! w$ i- W/ Q4 s& _&&p( k! W
/mnt/winxp/image/dropbeard! d6 j- L* I&&p
& & Magic:& && &&&bFLT
& & Rev:& && && & 4
& & Build Date:& &Thu Jul&&3 10:55:23 2008- 嵌入式底层驱动开发技术学习网站: X3 {5 J, o- U* L
& & Entry:& && &&&0x150! K& I; i&&I# ?
& & Data Start:& &0x250c0
& & Data End:& &&&0x2f1b0- 嵌入式底层驱动开发技术学习网站& b& _1 h# d8 F( ?; c: ?
& & BSS End:& && &0x41560嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习# b. n* T&&x0 V+ e8 }! [
& & Stack Size:& &0x1000嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习' \0 @. g2 ~0 i4 z7 ]5 R4 C' x* Q7 X
& & Reloc Start:&&0x2f1b0. ?&&}6 u* v2 b5 ]
& & Reloc Count:&&0x6f1
& & Flags:& && &&&0x1 ( Load-to-Ram )嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习' Z5 o! M+ l! H$ q
应该能使用arm-elf-flthdr -s 来更改大小吧
UID1&帖子4187&积分20611&联盟金币:7629 元&在线时间4595 小时&注册时间&
arm-elf-flthdr 也是可以的。我们一般推荐使用elf2flt=“-s”
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
谢谢osboy老大,
使用arm-elf-flthdr -s 8192 dropbeard&&后搞定了。
UID1&帖子4187&积分20611&联盟金币:7629 元&在线时间4595 小时&注册时间&
哈哈,强!
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
现在还有一个问题:本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1 D/ Z7 F: B&&a/ X- K% Q
& &我的密码是放在/etc/shadow这个文件里,所以dropbear在编译的时候需要uClibc里支持shadow.h中导出的getspnam()函数,而winbond立的uClibc-0.9.28中并没有实现这个函数。这样在链接:svr-authpasswd.o的时候总会报如下错误:
btommath/libtommath.a -lutil&&-lcrypt本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。/ O% T9 S$ Z* K& S0 f7 k+ t
dropbear.elf2flt(.text+0x9904): In function `svr_auth_password':嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 ^( s$ {) F. r2 {1 L
: undefined reference to `getspnam'* T&&X% H6 H# F
dropbear.elf2flt(.text+0xc710): In function `$a':
: undefined reference to `daemon'
collect2: ld returned 1 exit status
make: *** [dropbear] Error 1
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习2 ~% ~- R$ U) d) r( u& `
getspnam()在 svr-authpasswd.c文件中的函数 void svr_auth_password() 调用,后来查看了uClibc-0.9.28中的源码:libc/pwd_grp/pwd_grp.c中定义,可能是winbond的uClibc编译的时候没有选上这个选项吧。
[root@redhatvm arm_tools]# find ./ | xargs grep -n &\&getspnam&& && && &- 嵌入式底层驱动开发技术学习网站6 w&&Q6 z1 A&&r0 E$ k4 D5 f. g% t
./arm-elf/inc/shadow.h:67:extern struct spwd *getspnam (__const char *__name) __THROW;, h8 p1 l' B3 i0 L
./arm-elf/inc/shadow.h:84:extern int getspnam_r (__const char *__name, struct spwd *__result_buf,
[root@redhatvm arm_tools]#
如上,我们只是在这两个头文件中找到了这个函数的定义,但并没有在静态库中实现这两个函数。
不知大家有没有什么好的办法解决这个问题?
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
上面的问题解决了,把uclibc中getspnam()的函数实现copy到svr-authpasswd.c中就搞定了,可是每次使用ssh 客户端进行链接时就会报错:
root:/info& [29] Jan 01 00:00:58 Child connection from 192.168.1.218:32826
[29] Jan 01 00:01:01 exit before auth: bad packet size -" D6 [/ \' a7 P0 o/ d: T: H+ ?1 O
[30] Jan 01 00:01:15 Child connection from 192.168.1.218:32827/ M+ S/ U7 ?! p
munmap of non-mmaped memory by process 30 (dropbeard): 00580f60
munmap of non-mmaped memory by process 30 (dropbeard): 00580e60- 嵌入式底层驱动开发技术学习网站9 I! B. n! u. A- @" _
munmap of non-mmaped memory by process 30 (dropbeard): 00580e20
munmap of non-mmaped memory by process 30 (dropbeard): 00580d60嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习9 D3 \0 e) @/ {$ P+ d0 v5 z' T
munmap of non-mmaped memory by process 30 (dropbeard):
munmap of non-mmaped memory by process 30 (dropbeard): 00580d40
munmap of non-mmaped memory by process 30 (dropbeard): 嵌入式开发联盟6 h+ F6 }& z( L6 H
[30] Jan 01 00:01:18 exit before auth: bad packet size -( b. H# m9 O' u: Q( b* @) x5 `0 t
munmap of non-mmaped memory by process 30 (dropbeard): 00580ea0嵌入式开发联盟' p- V! j% j) C# P4 z
munmap of non-mmaped memory by process 30 (dropbeard): - 嵌入式底层驱动开发技术学习网站: f# M/ {$ L&&q) C+ v5 a$ h1 v
munmap of non-mmaped memory by process 30 (dropbeard): 00580ce0- 嵌入式底层驱动开发技术学习网站- w6 k8 N$ `5 x( ]5 w
[31] Jan 01 00:01:29 Child connection from 192.168.1.218:32828嵌入式开发联盟/ \# g* I# P) k/ ]' S8 `/ a
munmap of non-mmaped memory by process 31 (dropbeard):
UID1&帖子4187&积分20611&联盟金币:7629 元&在线时间4595 小时&注册时间&
还是分配内存的事情
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
能具体讲一下内存分配哪里的问题吗?这个问题改该如何解决?在登录的时候输入正确的密码还是不能登录,我怀疑是不是与内存有关,我的stack size给的是16K:root:/info& ./dropbeard
[40] Jan 01 00:04:49 Running in background
[41] Jan 01 00:04:59 Child connection from 192.168.1.218:32829
[41] Jan 01 00:05:13 bad password attempt for 'root' from 192.168.1.218:32829
[41] Jan 01 00:05:24 bad password attempt for 'root' from 192.168.1.218:32829
[41] Jan 01 00:05:40 bad password attempt for 'root' from 192.168.1.218:32829
[41] Jan 01 00:05:40 exit before auth (user 'root', 3 fails): Exited normally
[42] Jan 01 00:07:04 Child connection from 192.168.1.218:32830
munmap of non-mmaped memory by process 42 (dropbeard):
munmap of non-mmaped memory by process 42 (dropbeard):
munmap of non-mmaped memory by process 42 (dropbeard):
munmap of non-mmaped memory by process 42 (dropbeard): 0058eb80
munmap of non-mmaped memory by process 42 (dropbeard):
[42] Jan 01 00:07:15 bad password attempt for 'root' from 192.168.1.218:32830
[42] Jan 01 00:07:24 bad password attempt for 'root' from 192.168.1.218:32830
[42] Jan 01 00:07:28 bad password attempt for 'root' from 192.168.1.218:32830
[42] Jan 01 00:07:28 exit before auth (user 'root', 3 fails): Exited normally
munmap of non-mmaped memory by process 42 (dropbeard): 0058eac0
munmap of non-mmaped memory by process 42 (dropbeard):
munmap of non-mmaped memory by process 42 (dropbeard): 0058eca0复制代码
另外在输入密码狂按一阵回车键后会导致内核不断报错:
W90N745: I Have Not Got Memory In Fun netdev_rx
这是什么原因?- 嵌入式底层驱动开发技术学习网站) f" e) ?& H
[ 本帖最后由 dglwx 于
16:13 编辑 ]
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
刚才自己编译了一下uClibc-0.9.28, 华邦的编译器应该是在编译uClibc的时候并没有选中
General Library Settings --&
& && && &&&Shadow Password Support,- 嵌入式底层驱动开发技术学习网站0 e( W7 G$ A, Q. R' o1 Y
而getspnam()这些函数是在libc.a这个静态库中,源码是在:
uClibc-0.9.28/libc/pwd_grp/pwd_grp.c中。. \; t4 S) j& t- ?
在链接我编译的uClibc库时,总是出现下面的错误:( L: N4 l0 b1 y+ [7 d
dropbear.elf2flt(.text+0x1c54c): In function `__uClibc_init':本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。' ^+ q) o1 X! ~5 b1 g
/home/l200/lib/uClibc-0.9.28/libc/misc/internals/__uClibc_main.c:155: undefined reference to `__pthread_initialize_minimal'&&Z" y$ n/ E3 s( X' l
collect2: ld returned 1 exit status
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
自己编译uClibc的库,使用arm-elf-ar生成libshadow.a,然后在Makefile中加上-lshadow,终于把这个问题解决了,可是第一次使用ssh登录时会提示:+ j) o1 {; c& ?: z# W$ \
root:/info& munmap of non-mmaped memory by process 35 (dropbeard): 0059ff40- 嵌入式底层驱动开发技术学习网站&&u. [6 n% E% x" W&&m
断掉链接再使用ssh登录时会出现:
munmap of non-mmaped memory by process 45 (dropbeard): 0059ff00
munmap of non-mmaped memory by process 46 (dropbeard): 005c8e60本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。9 s&&F&&h7 g( G% c% g( X3 @7 `
Allocation of length 260 from process 46 failed- 嵌入式底层驱动开发技术学习网站% z( J& Z5 H7 Z& u2 w/ f
Buffer memory:& && &&&0kB
Cache memory:& && & 12kB, p7 n& n0 x! k' q/ ?, c+ [
Active: 0, inactive: 3, free: 596
Free pages:& &&&596 (2384kB), %1 frag, %1 slack$ _2 x4 H: T- b, v' H
Free blks:& && & 11 min=1 max=455 avg=54嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习: S0 b3 {- g& V
Used blks:& && & 12 min=1 max=787 avg=78
Allocation of length 260 from process 46 failed
Buffer memory:& && &&&0kB2 O! {" e+ k0 l" H+ t+ p# l
Cache memory:& && & 12kB! q6 _. W% o: }
Active: 0, inactive: 3, free: 596嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习/ M& t, y9 t&&Z: A3 c
Free pages:& &&&596 (2384kB), %1 frag, %1 slack& &//这里貌似还有2M内存
Free blks:& && & 11 min=1 max=455 avg=54本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。&&c: F0 n9 X& [9 T) |
Used blks:& && & 12 min=1 max=787 avg=78嵌入式开发联盟/ J- z$ Q$ a
W90N745: I Have Not Got Memory In Fun netdev_rx嵌入式开发联盟$ v2 Z5 X&&^+ v0 N' t9 _
W90N745: I Have Not Got Memory In Fun netdev_rx- 嵌入式底层驱动开发技术学习网站' y* `; C# W1 P7 @
W90N745: I Have Not Got Memory In Fun netdev_rx
W90N745: I Have Not Got Memory In Fun netdev_rx
W90N745: I Have Not Got Memory In Fun netdev_rx7 ^+ }1 c* O1 a$ i
W90N745: I Have Not Got Memory In Fun netdev_rx
W90N745: I Have Not Got Memory In Fun netdev_rx
嵌入式开发联盟! H* S. H- t8 q# g
这是什么原因?可能是将程序中的fork()改成vfork()后引起的吗?
UID1&帖子4187&积分20611&联盟金币:7629 元&在线时间4595 小时&注册时间&
建议你在自己编译uclibc的时候,便以完全后make install一下(make menuconfig里面设置安装路径必须为你所在的编译器路径)以来替换华邦自有的uclibc库,然后再去编译程序,就可以了。否则会出现很多问题。请了解!~
UID892&帖子487&积分840&联盟金币:840 元&在线时间474 小时&注册时间&
make menuconfig指定的那个路径是到/usr/local/arm_tools_3.3.4/arm-elf/lib么?
另外,我试过把我编译的静态库放到/usr/local/arm_tools_3.3.4/arm-elf/lib下,相同的文件选择覆盖,结果编译应用程序的时候出现:
dropbear.elf2flt(.text+0x1c54c): In function `__uClibc_init':
/home/l200/lib/uClibc-0.9.28/libc/misc/internals/__uClibc_main.c:155: undefined reference to `__pthread_initialize_minimal'本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。( Y, p4 |' v6 v9 \
collect2: ld returned 1 exit status
这是什么原因?
UID1&帖子4187&积分20611&联盟金币:7629 元&在线时间4595 小时&注册时间&
所有路径指这个,/usr/local/arm_tools_3.3.4/arm-elf
[通过 QQ、MSN 分享给朋友]
网页右侧QQ悬浮滚动在线客服
站长的QQ:
邀请码QQ:
网页右侧QQ悬浮滚动在线客服
站长的QQ:
邀请码QQ:

我要回帖

更多关于 dropbear 的文章

 

随机推荐