Vty password is not set问题解决

本文分享了在使用Quagga路由软件时,因误操作导致Vty密码丢失的解决经验。通过直接编辑配置文件zebra.conf并重启系统,成功恢复了telnet连接。提醒读者在执行未知命令前要谨慎,避免类似尴尬情况。

Vty password is not set 问题解决

在熟悉quagga基本命令的过程中,由于运行了

$ service password-encryption

这条命令是将设定的密码以密文的形式显示。由于好奇心的驱使,运行了

$ no service password-encryption

运行之前,我以为这条命令是使得加密的密码以明文形式显示出来,但是运行后,发现是把密码删除了,密码变为空,去网上查到的说法是这条指令使用的是MD5的加密,加密后,即使用no service password-encryption命令,也不会显示以前加密过的密码,因为这个加密过程是不可逆的。
但是,由于当时并没有意识到是把密码清空了,就正常退出了,结果再想进行连接的时候,即执行完以下指令后

$ telnet localhost 2601
  2601 是services中记录的zebra的端口号

提示以下信息:

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is'^]'.
Vty password is not set.
Connection closed by foreign host.

查找官方文档,其中确实给出了说明,在进入zebra时,必须设置了密码,否则vty拒绝接受连接。
在这里插入图片描述
那遇到这种已经拒绝连接,没有办法再进入configure terminal进行密码修改的情况怎么办呢?
直接修改zebra配置文件,配置文件位于/etc/quagga路径下,这个地方需要root权限,可通过以下命令进入root用户。

$ sudo passwd root
  设置root用户密码
$ su root
  输入密码进入即可
$ vim zebra.conf

可以看到文件内容如下(修改后):
在这里插入图片描述
设置其中的password内容即可。
然后重启一下系统,再执行telnet命令便可以进入quagga了。

emmmm,以后还是要先确定一下命令到底是做什么的再运行才好,否则后果很尴尬…

``` import paramiko,re,time from datetime import datetime from config01 import userlist,x_xml from threading import Thread import threading class SW(): def __init__(self): self.ssh=paramiko.SSHClient() self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) self.ssh.connect(hostname="192.168.100.1",port=22,username="python", password="Huawei@123",allow_agent=False,look_for_keys=False) self.vty=self.ssh.invoke_shell() print("ssh 连接成功") self.send_com("screen-length 0 temporary") def send_com(self,com): self.vty.send(com+"\n") time.sleep(2) return self.vty.recv(65535).decode("utf-8") def jhjzt(self): while True: p_list=[] for i in userlist.keys(): pat=self.send_com(userlist[i]["com"]) res = re.compile(userlist[i]["re"]).findall(pat) if i =="fan":res =res if res else "all fan are faulty" p_list.append(f"{i}:{res}") with open(r"E:\PYTHON\tets011", 'w') as f: f.write(pat) print("\n".join(p_list)) time.sleep(60*5) def xiazai(self): while True: with paramiko.Transport(("192.168.100.1",22)) as t : t.connect(username="python",password="Huawei@123") sftp= paramiko.SFTPClient.from_transport(t) sftp.get("/vrpcfg.zip", f"{datetime.now().strftime('%Y_%d_%m_%H_%M_%S')}_X_T1_AGG1.zip") print("下载成功") time.sleep(60*60*24) def binfa(self): Thread(target=self.jhjzt).start() Thread(target=self.xiazai).start() file_lock = threading.Lock() def write_file(data, file_path): with file_lock: # 获取锁 try: with open(file_path, 'w') as f: f.write(data) except PermissionError as e: print(f"权限错误: {e}") # 添加重试逻辑(见步骤3) if __name__ == '__main__': SW().binfa()```logbuffer显示这个 Info: Slave board is not ready.
03-22
<think>好的,我现在需要帮用户解决中兴路由器提示“No password is set”的问题。首先,用户的问题是关于这个错误信息的含义和解决方案。我需要先理解这个提示出现的原因。根据引用中的内容,中兴路由器的配置涉及到用户名和密码的设置,尤其是串口或控制台的认证配置。比如引用3中提到需要配置串口的用户名和密码,并且设置认证方式为本地认证,同时开启认证功能。 “No password is set”字面意思是未设置密码,可能是在尝试通过控制台或其他接口登录时,系统检测到没有配置密码导致的。这时候,用户可能无法进行认证,进而无法访问路由器的配置界面。我需要确定哪些配置步骤缺失导致了这个错误。 根据引用3中的步骤,配置流程包括设置用户名和密码、选择认证方式、进入控制台模式并启用认证。如果用户没有完成这些步骤,或者配置不完整,就可能出现该提示。例如,用户可能配置了用户名但未设置密码,或者虽然设置了密码但没有启用认证功能。 接下来,解决方案需要分步骤指导用户如何正确配置密码和认证。首先,检查是否已配置用户名和密码,然后确认认证类型是否为本地认证,接着进入控制台模式并启用认证。如果用户没有设置密码,需要使用username命令加上privilege参数和password子命令来设置密码。此外,还要确保在控制台线路上启用了登录认证,否则即使有密码,系统也不会要求认证,从而导致提示出现。 另外,引用2提到了系统维护和密码配置的相关内容,可能涉及到进入BOOTP模式进行密码恢复,但这可能是在用户忘记密码的情况下的解决方案。不过当前问题是没有设置密码,所以重点应放在正确配置上,而不是恢复。 可能还需要检查是否应用了配置,因为有时候配置更改后需要保存或重启才能生效。用户可能在配置过程中遗漏了write命令保存配置,导致配置未生效。 最后,要提醒用户测试配置是否有效,例如退出后重新登录查看是否提示输入密码,如果没有,可能需要重新检查每一步是否正确执行,或者查看是否有其他配置冲突,比如其他认证方式覆盖了本地设置。 总结起来,解决步骤应该是:进入全局配置模式,设置用户名和密码,配置认证方式为本地,进入控制台线路模式,启用认证,保存配置,然后测试。如果用户之前没有设置密码,这些步骤应该能解决问题。如果问题仍然存在,可能需要检查其他配置或查看系统日志进一步排查。</think>### 中兴路由器提示"No password is set"的解决方案 #### 问题分析 当中兴路由器显示**No password is set**时,表示设备未配置任何有效的登录密码。这种情况常见于以下场景: 1. **未配置控制台/远程登录密码**:通过串口(Console)或Telnet/SSH登录时,未设置认证密码[^3]。 2. **认证功能未启用**:虽然配置了用户名,但未启用密码认证机制[^3]。 3. **配置未生效**:密码设置后未保存或未应用配置[^2]。 --- #### 解决步骤 ##### 1. **配置控制台密码(Console登录)** ```plaintext ZXR10> enable ZXR10# configure terminal ZXR10(config)# username admin privilege 15 password your_password # 设置管理员密码 ZXR10(config)# line console 0 # 进入控制台线路模式 ZXR10(config-line)# login authentication default # 启用登录认证 ZXR10(config-line)# exit ZXR10(config)# exit ZXR10# write # 保存配置 ``` ##### 2. **配置远程登录密码(Telnet/SSH)** ```plaintext ZXR10(config)# username remote_user password your_remote_password # 设置远程用户密码 ZXR10(config)# line vty 0 4 # 进入虚拟终端接口 ZXR10(config-line)# login authentication default # 启用认证 ZXR10(config-line)# transport input telnet ssh # 允许Telnet和SSH ZXR10(config-line)# exit ZXR10(config)# exit ZXR10# write ``` ##### 3. **验证配置** - 退出当前会话并重新登录,检查是否要求输入密码。 - 使用命令`show running-config`查看密码配置是否生效[^3]。 --- #### 注意事项 - **密码复杂度要求**:中兴设备通常要求密码包含字母、数字和特殊字符。 - **恢复密码**:若忘记密码,需通过**BOOTP模式**重置(需物理访问设备)[^2]。 - **配置冲突**:若同时配置了`no login`(禁用认证)和密码,系统会优先执行`no login`,导致密码失效[^3]。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LLXIN7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值