NotesUESTC/网络技术/OpenWrt/OpenWrt的ssh无法登陆问题.md

2.5 KiB
Raw Blame History

OpenWrt的ssh无法登陆问题Permission denied, please try again.解决

一、情况描述:

我根据B站的博主提供的教程对红米AC2100路由器进行刷机。最开始刷的Openwrt是可以连接ssh的后面的升级改进版就无法进入ssh了具体的错误如下。``

#采用windows的powershell登陆
ssh root@192.168.30.1
root@192.168.30.1's password:
Permission denied, please try again.

# openwrt后台log
Sat Feb 10 01:15:01 2024 authpriv.info dropbear[11072]: Child connection from 192.168.30.247:62748
Sat Feb 10 01:15:01 2024 authpriv.warn dropbear[11072]: User 'root' has invalid shell, rejected

上述问题在于,我输入的密码是对的但是依旧无法登陆。查看etc/passwd发现密码是正确的。

root:x:0:0:root:/root:/bin/bash
daemon:*:1:1:daemon:/var:/bin/false
ftp:*:55:55:ftp:/home/ftp:/bin/false
network:*:101:101:network:/var:/bin/false

为了解决上述的问题,我调查了好几种原因和解决方案。我遇到的问题是系统目录的etc\shells文件中没有/bin/bash,导致的无法登陆。那么其他的原因有:

# 1. etc/passwd换行问题导致 https://blog.csdn.net/railzen/article/details/132835654
# 2. /bin/bash没有加入 https://blog.csdn.net/weixin_33849215/article/details/93449289

二、解决方案

通过OpenWrt的web界面查看文件管理下载etc\shells文件。然后发现内容如下:

/bin/ash
/usr/bin/zsh

那么我们加入/bin/bashetc\shells文件中并通过Web管理界面的文件管理功能上传到OpenWrt上然后重启路由器。

/bin/bash
/bin/ash
/usr/bin/zsh

在Powershell中输入ssh root@192.168.30.1成功进入ssh。

C:\Users\admin>ssh root@192.168.30.1 -p 22
                                                 _____
      _____________________________      __________  /_
      _  __ \__  __ \  _ \_  __ \_ | /| / /_  ___/  __/
      / /_/ /_  /_/ /  __/  / / /_ |/ |/ /_  /   / /_
      \____/_  .___/\___//_/ /_/____/|__/ /_/    \__/
            /_/
         _________________________________________

               OpenWrt 07.12.2023 by Kiddin'
         _________________________________________

系统负载:  0.94 0.39 0.14       运行时间:  1 min
内存已用:  46 % of 116MB        IP  地址:  192.168.30.1 192.168.1.12