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]
[openwrt@root files]$ vim dropbear.config
1config dropbear
2 option PasswordAuth 'on'
3 option RootPasswordAuth 'on'
4 option Port '22'
5 option Interface 'lan'
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]
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架構)其他架構的目錄名字不同。
重新編譯下即可。