安全与 VPN : 安全壳 SSH

SSH认证失败由于低内存状况

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 23 日) | 反馈

简介

当对路由器的安全壳SSH有时失效与SSH调试的时,一报告的用户认证失败本文描述在Cisco IOS路由器的问题。此问题出现,即使被输入的用户凭证正确地是正确和同一凭证工作Telnet的。

注意:归档Cisco Bug ID CSCum19502为了做在SSH之间的行为和远程登录一致。

贡献用Atri巴苏和温张, Cisco TAC工程师。

问题

在这些的公告调试,即使“debug aaa authentication”启用,没有打印的验证、授权和统计(AAA)调试显示AAA实际上被调用并且返回失败。

Router#show debug
General OS:
AAA Authentication debugging is on
SSH:
Incoming SSH debugging is on
ssh detail messages debugging is on
Router#
*Sep 30 20:28:57.172: SSH2 2: MAC compared for #8 :ok
*Sep 30 20:28:57.172: SSH2 2: input: padlength 15 bytes
*Sep 30 20:28:57.172: SSH2 2: Using method =
keyboard-interactive
*Sep 30 20:28:57.172: SSH2: password authentication failed
for cisco

*Sep 30 20:28:59.172: SSH2 2: send:packet of length 64
(length also includes padlen of 14)
*Sep 30 20:28:59.172: SSH2 2: computed MAC for sequence
no.#8 type 51
*Sep 30 20:29:01.751: SSH2 2: ssh_receive: 144 bytes received
*Sep 30 20:29:01.751: SSH2 2: input: total packet length of
128 bytes
*Sep 30 20:29:01.751: SSH2 2: partial packet length(block size)
16 bytes,needed 112 bytes,

有时显示的Syslog此处也被观察,当SSH尝试时,但是不一致印出:

*Sep 30 20:23:27.598: %AAA-3-ACCT_LOW_MEM_UID_FAIL: AAA unable to create UID for incoming 
calls due to insufficient processor memory

问题的根本原因是在路由器的低内存状况。当AAA不能分配内存创建唯一的ID (UID)时流入SSH会话的,报告失败和AAA认证失败一样,即使AAA没有尝试。此情况发生,当处理器空闲存储器在AAA “验证低内存阈值”之下下跌,默认情况下设置到3%总内存,并且可以检查与memory命令的显示aaa。此问题在有在路由器的被限制的内存可以用尽与大量控制飞机使用情况,例如一个全双工边界网关协议(BGP)表的聚合服务路由器(ASR) 1001平台比较常见。在ASR 1001有安装的DRAM 4GB,但是在所有另一CPU和Linux以后处理器引导Cisco IOS获得1.1 GB被留下。 一旦内存用尽到点AAA能不再分配UID的内存, SSH未起作用。

考虑从两ASR的此内存数据:

SSH Not Working:
----------------
ASR1#show memory summary
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 7FE150387010 1160982064 1146067400 14914664 14225352 13918620
lsmpi_io 7FE14FB7E1A8 6295128 6294304 824 824 412

SSH Working:
------------
ASR2#show memory summary
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 7FFB6ACB0010 1160982064 1120122056 40860008 29163912 24132068
lsmpi_io 7FFB6A4A71A8 6295128 6294304 824 824 412

从一个简单计算,对非工作的ASR空闲存储器的百分比是1.28% (14914664/1160982064 * 100)总可利用的内存。在工作的ASR它是3.51% (40860008/1160982064 * 100),上面验证低内存阈值。

此问题是很难识别,因为%AAA-3-ACCT_LOW_MEM_UID_FAIL消息经常不印出,当此错误生成由于低内存状况。而且,方式AAA计算内存阈值不取决于原始相当数量在路由处理器(RP)的处理器内存联机,然而相当百分比总内存。所以,当这发生没有malloc故障报告时,也许表面上仍然有作为任意处理器内存显示的大量在show memory summary命令输出中。

注意:归档Cisco Bug ID CSCuj50368为了使SSH错误消息明确关于认证失败的实据。

一种方式对验证,如果这的确是问题将查看AAA内存统计信息:

Router#show aaa memory
Allocator-Name In-use/Allocated Count
----------------------------------------------------------------------------
AAA AttrL Hdr : 0/65888 ( 0%) [ 0] Chunk
AAA AttrL Sub : 0/65888 ( 0%) [ 0] Chunk
AAA DB Elt Chun : 544/65888 ( 0%) [ 4] Chunk
AAA Unique Id Hash Table : 8196/8288 ( 98%) [ 1]
AAA chunk : 0/16936 ( 0%) [ 0] Chunk
AAA chunk : 0/16936 ( 0%) [ 0] Chunk
AAA Interface Struct : 1600/1968 ( 81%) [ 4]

Total allocated: 0.230 Mb, 236 Kb, 241792 bytes


AAA Low Memory Statistics:
__________________________
Authentication low-memory threshold : 3%
Accounting low-memory threshold : 2%



AAA Unique ID Failure : 96
Local server Packet dropped : 0
CoA Packet dropped : 0
PoD Packet dropped :

如果“AAA唯一的ID失败”计数随每失败的SSH尝试增加,问题是由此低内存状况引起的。 

为了排除故障此问题,标准ASR 1000应该采取内存故障排除步骤为了查出原因。关于如何排除故障在ASR的内存问题的更多信息,请参阅内存使用概述

解决方案

为了排除故障此问题,应该采取标准的路由器内存故障排除步骤。步骤隔离问题是否归结于正常使用情况,在平台/存储器升级也许被担保情况下;或者内存泄漏排除故障的额外的内存监控和也许要求的地方。欲了解更详细的信息请参阅内存泄漏检漏仪和普通的内存故障排除技术

对于没有从Cisco Bug ID CSCum19502的修正的版本,最明显的应急方案是启用Telnet或控制台访问对路由器,因为仅SSH是受此阈值的影响的。 

提示threshold命令aaa的内存允许您降低阈值到至少1%。然而,而这提供一个临时方式给SSH给路由器,它可能导致其他暗示例如折让处理器内存利用率下降确实低,在admins警告前。用完很多内存的这也许造成更加重要的进程,例如BGP,不再运作。因此这是应该小心地使用的事。

如前所述,是完全振振有词的路由器不漏内存,但是为启用的功能是公正订购过量的。在这种情况下平台/存储器升级也许被担保。


相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


Document ID: 116649