当前的情况:
Openwrt开机后不能用ssh直接连接,需要在页面上配置后才能连上,system->administration->SSH Access其实就是修改下接口为自己需要的接口,修改密码(密码不能为空)保存应用就行了。
注:openwrt默认开启telnet但是没开启ssh,当配置了用户名和密码后就默认开启ssh关闭了telnet。这时用telnet连接时会提示“Login failed.”
解决过程主要分两步:
1.第一步修改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
[openwrt@root files]$ vim dropbear.config
config dropbear
option PasswordAuth 'on'
option RootPasswordAuth 'on'
option Port '22'
option Interface 'lan'
# option BannerFile '/etc/banner'
修改成如上
2.第二步:修改root密码
由于openwrt默认是没有密码的,所以ssh没法连接,只能连接telnet,我们只要做到让openwrt开启时就配置好密码就可以了!
让openwrt开机就有密码有两种方法:
1、 修改原有的shadow文件--------测试可行
2、 用一条命令开机启动时就执行echo “密码”| passwd root –stdin ---经测试此方法在一般linux里面支持,但是在busybox中的passwd不支持,出现如下错误
然后修改/package/base-files/files/etc/shadow文件,将加密后的一行root的密码粘贴进此文件,密码为123456时,加密后应是:
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架构)其他架构的目录名字不同。
重新编译下即可。
————————————————
原文链接:https://blog.csdn.net/jk110333/article/details/8814675