openwrt默认开机启动ssh的方法

当前的情况:

Openwrt开机后不能用ssh直接连接,需要在页面上配置后才能连上,system->administration->SSH Access其实就是修改下接口为自己需要的接口,修改密码(密码不能为空)保存应用就行了。

注:openwrt默认开启telnet但是没开启ssh,当配置了用户名和密码后就默认开启ssh关闭了telnet。这时用telnet连接时会提示“Login failed.”





解决过程:


主要分两步,第一步修改dropbear配置文件:

开始不知道这个修改是修改了什么配置文件,所以需要从luci页面开始查找。用grep命令查到在/usr/lib/lua/luci/model/cbi/admin_system/admin.lua
如下图可以看出来,修改的是配置文件/etc/config/dropbear文件


配置之后的

#vim /etc/config/dropbear


配置之前(默认的),没有配置接口

#vim /etc/config/dropbear


到这里可以确定配置文件了,现在要做的就是修改openwrt编译环境中的文件,让openwrt编译出来的固件直接符合我们的要求。

Openwrt下的路径:package/network/services/dropbear/files/dropbear.config

[plain]  view plain copy
  1. [openwrt@root files]$ vim dropbear.config  
  2.   1config dropbear  
  3.  2     option PasswordAuth 'on'  
  4.   3     option RootPasswordAuth 'on'  
  5.  4     option Port         '22'  
  6.  5     option Interface         'lan'  
  7.   6#   option BannerFile   '/etc/banner'  


修改成如上


第二步:修改root密码


由于openwrt默认是没有密码的,所以ssh没法连接,只能连接telnet,我们只要做到让openwrt开启时就配置好密码就可以了!
让openwrt开机就有密码有两种方法:
1、 修改原有的shadow文件--------测试可行
2、 用一条命令开机启动时就执行echo “密码”| passwd root –stdin  ---经测试此方法在一般linux里面支持,但是在busybox中的passwd不支持,出现如下错误


然后修改/package/base-files/files/etc/shadow文件,将加密后的一行root的密码粘贴进此文件,密码为123456时,加密后应是:

[plain]  view plain copy
  1. root:$1$BTkC8R/1$ZtNrYbhknXmNKGHDJCmJc1:15783:0:99999:7:::  


将这一行粘贴进shadow文件,openwrt开机后默认就是123456的密码了,telnet不可用,ssh默认开启。

 

最后删除/staging_dir/target-i386_uClibc-0.9.33.2/root-x86文件夹(我是要编译iso的所以是x86架构)其他架构的目录名字不同。

重新编译下即可。


你可能感兴趣的:(openwrt)