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 plaincopy
  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 plaincopy
  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架構)其他架構的目錄名字不同。

重新編譯下即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章