dropbear是一个轻量级的ssh2服务器和客户端,动态编译在170K左右,远远小于openssh的1.4M, 适合嵌入式系统使用.

DropBear    http://matt.ucc.asn.au/dropbear/dropbear.html

# ./configure

# make

生成的文件:

 
    dropbear: ssh2 server
    dropbearkey: 密钥生成器
    dropbearconvert: 可以转换openssh的密钥
    dbclient: ssh2 client
拷贝dropbear 与 dropbearkey busybox rootfs.
生成 密钥 并以前端模式端口3310 启动:

dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_hostkey

dropbear -p 3310 -F -E

在远程登录时报错:

通过查看代码发现时svr-auth.c中检查用户的密码时出错:
linux 中获取用户属性都是通过 getpwnam 来取得, dropbear 也不例外.  通过一段代码看看getpwname 的运行过程.
#include <sys/types.h> #include <stdio.h> #include <pwd.h> int main(int argc, char ** argv) { struct passwd * pw = NULL; pw = getpwnam("root"); if (!pw) { printf("getpwnam failed/n"); return 1; } printf("getpwnam results:/n"); printf("user:/t%s/n", pw->pw_name); printf("crypt:/t%s/n", pw->pw_passwd); printf("uid:/t%d/n", pw->pw_uid); printf("gid:/t%d/n", pw->pw_gid); printf("home:/t%s/n", pw->pw_dir); printf("shell/t%s/n", pw->pw_shell); return 0; }
# gcc getpwnamroot.c -o getpwnamroot
# strace ./getpwnamroot
查看strace输出时看到 两个独特的地方,  getpwnamroot 分别读取了/etc/nsswitch.conf这个配置文件, 并将libnss_files.so.2这个动态库也映射到了自己的进程空间. 看样子是使用了Libnss. Libnss 是一套身份查询程序,原来系统以自有的一些函式来取得自己的一些身份上的参数,像 uid/gid , username 等等,这些函数像 getpwnam/getpwuid/getspnam ...等等,而这些身份函数通像是传回一些结构(struct),libnss_xxx 的作用即是在于可以将这些函数改为使用xxx的语法. 我的busybox rootfs中恰恰没有, 看样子就是它了. :)
将基本的libnss_xxx.so 拷贝到busybox rootfs, 重启登录, 搞定!:)

解决dropbear在busybox中使用无法使用本地用户登录问题相关推荐

  1. linux关闭本地登录密码登录密码错误,vsftpd本地用户登录密码错误的解决方法

    今天发现自己虚拟机的vsftp使用本地用户名无法登陆,于是重新配置,但配置了很多次都没成功,一直显示 530 login incorrect. login failed 解决方式是将vsftp.con ...

  2. linux用户ftp失败,vsftpd本地用户登录密码错误的解决方法

    今天发现自己虚拟机的vsftp使用本地用户名无法登陆,于是重新配置,但配置了很多次都没成功,一直显示 530 Login incorrect. Login failed 解决方式是将vsftp.con ...

  3. ftp ---- 本地用户登录(实例配置1:)

    简单本地用户配置 创建本地用户 useradd ftpuser passwd ftpuser 为了服务器的安全,防止木马程序,挖矿,勒索病毒等,也可以复杂点提高服务器的安全性 groupadd ftp ...

  4. Linux FTP服务器本地用户登录

    Linux:FTP服务器本地用户登录 在这篇文章中,我将通过vsftp对FTP服务器进行配置.并且以本地用户形式,实现VM虚拟机下的Linux系统和实际的Windows系统进行交互.(我的Liunx系 ...

  5. OEM中无法用sys用户登录

    OEM中无法用sys用户登录 开始准备通过实验的方式,把这段日子来看的内容好好的实践一翻.于是乎打开了OEM,却神奇的发现不能用sys用户登录了,与此同时,其他的非sysdba用户可以登录.但是通过s ...

  6. vsftpd 本地用户登录和上传设置

    2019独角兽企业重金招聘Python工程师标准>>> 本来好好的 ftp 可以登录,最近几天突然不能用本地用户登录了,修复: local_enable=YES chroot_loc ...

  7. Windows10忘记Microsoft账户密码桌面登录进不去,不重装系统删除微软账户更改本地用户登录

    环境: 联想服务器rs240 Win10专业版 WIN 10 PE 问题描述: win10忘记Microsoft账户密码桌面登录进不去,PE下开启本地账户,但是在系统登入页面只有微软账户,不显示其他账 ...

  8. JavaWeb中使用session保持用户登录状态

    使用session保持用户登录状态 // 登录 成功// 保存用户登录的信息到Session域中req.getSession().setAttribute("user", logi ...

  9. 解决python在pycharm中可以import本地文件,但命令行运行时报错:no model named xxxx本地文件

    解决方法 在文件最开头,添加代码: import sys[sys.path.append(i) for i in ['.', '..']] 如果是在pycharm中手动右击Mark目录为根目录Root ...

  10. 解决Ubuntu18.04不能用Xshell使用root用户登录

    今天使用Xshell6连接Ubuntu18.04时,连接普通用户可以,但是连接root用户不行 我用了网上很多办法不行~~~~~ 然后看到这篇文章了 https://www.cnblogs.com/a ...

最新文章

  1. MySQL—创建数据表
  2. 轨迹匹配地图 python_基于地图的视觉定位(一)
  3. evernote100个做笔记的好方法
  4. ES6新特性之函数优化-参数默认值
  5. mysql日活统计函数_如何通过简化日活模型,预估一个产品的日活(DAU)?
  6. php怎么学小程序,PHP学习之路之Hello World小程序
  7. java contains 通配符_java 泛型通配符 extends, super
  8. 海园帮忙写的JQUERY功能,实现了我们想要的,我觉得有点屌哟~~
  9. 《C语言到底能干什么》1.3 窗口程序的编写
  10. 怎么把python压缩_python中如何实现图片压缩
  11. 计算机三级网络技术知识考点
  12. Spring Hibernate Validation
  13. 【无标题】单分子纳米孔测序技术及其应用研究进展
  14. WireShark抓Intel网卡的802.1q包
  15. SpringCloud面试题(一)
  16. Unity 3d 最新下载与安装
  17. 深蹲的26种变化动作(深蹲大全)
  18. windows C++ gbk转为utf-8
  19. IDC机房服务器托管或租用可提供的一系列服务
  20. 程序员永远不要再犯的5个编程bug

热门文章

  1. android下拉刷新listView剖析
  2. 指数加权平均与其偏差消除
  3. BZOJ5222[Lydsy2017省队十连测] 怪题
  4. js高级学习笔记(b站尚硅谷)-7-函数中的this
  5. android tv tts,TTS发音问题
  6. 怎么写c++ documentation_球鞋鞋标怎么看真假、有几种 耐克鞋标鉴定方法推荐
  7. python玩转单片机_Python玩转单片机:从基础到进阶,几款主流的开发板大盘点!...
  8. python 类属性 对象属性_python 类属性、对象属性
  9. oracle物理块坏了重启,Oracle 物理结果损坏处理
  10. java泛化_java 类字面常量,泛化的Class引用