PuTTY用户手册(十四)_remote side sent disconnect message-程序员宅基地

技术标签: 译文  PuTTY用户手册  PuTTY教程  PuTTY新手入门  

第10章:常见错误消息

本章列出了PuTTY及其相关工具可以生成的一些常见错误消息,并更详细地解释了它们的含义。

我们不打算在这里列出所有错误消息:有许多错误消息不应该出现,有些错误消息应该是不言自明的。
如果您收到本章未列出且您不理解的错误消息,请将其作为错误报告给我们(参见附录B),我们将为其添加文档。

10.1"服务器的主机密钥没有缓存在注册表中"(The server’s host key is not cached in the registry)

当PuTTY连接到新的SSH服务器时发生此错误消息。
每台服务器通过主机密钥标识自身;
一旦PuTTY知道服务器的主机密钥,它将能够检测恶意攻击者是否将您的连接重定向到另一台机器。

如果您看到这条消息,这意味着PuTTY以前从未见过这个主机键,并且无法知道它是否正确。
您应该尝试通过其他方法验证主机密钥,例如询问计算机的管理员。

如果您看到这条消息,并且您知道您的PuTTY安装之前已经连接到相同的服务器,那么它可能最近已经升级到SSH协议版本2。
SSH协议1和2使用不同的主机密钥,因此当您第一次将SSH-2与您以前只使用过的服务器一起使用时,您将再次看到这条消息。
您应该像以前一样验证密钥的正确性。

有关主机密钥的更多信息,请参见第2.2节。

10.2"警告-潜在安全漏洞!"(WARNING - POTENTIAL SECURITY BREACH!)

这条消息后面跟着“服务器的主机键与PuTTY缓存在注册表中的键不匹配”,这意味着PuTTY以前连接到SSH服务器,知道它的主机键应该是什么,但是找到了另一个键。

这可能意味着恶意攻击者用不同的服务器替换了您的服务器,或者将您的网络连接重定向到他们自己的计算机。
另一方面,这可能仅仅意味着服务器管理员在升级SSH软件时意外地更改了密钥;
这不应该发生,但不幸的是这是可能的。

您应该联系服务器的管理员,看看他们是否希望主机密钥已经更改。
如果是,请像验证新主机密钥一样验证新主机密钥。

有关主机密钥的更多信息,请参见第2.2节。

10.3"我们的配置需要SSH协议版本2,但服务器只提供(旧的、不安全的)SSH-1"(SSH protocol version 2 required by our configuration but server only provides (old, insecure) SSH-1)

默认情况下,PuTTY只支持连接到实现SSH协议版本2的SSH服务器。
如果您看到这条消息,您试图连接的服务器只支持旧的SSH-1协议。

如果服务器真的只支持SSH-1,那么您需要更改“SSH协议版本”设置(参见4.18.4节),或者使用-1命令行选项;
在任何情况下,您都不应该将生成的连接视为安全的。

您可能会在以前没有的PuTTY新版本(从0.68开始)中看到这条消息,因为过去可以将PuTTY配置为自动从SSH-2回落到SSH-1。
这不再被支持,以防止降级攻击的可能性。

10.4"服务器支持的第一个密码是……"低于配置的警告阈值’(The first cipher supported by the server is … below the configured warning threshold)

当SSH服务器没有提供任何密码时,就会发生这种情况,您已经将PuTTY配置为足够强的密码。
默认情况下,PuTTY仅对单des和arc4加密发出此警告。

有关此消息的更多信息,请参见第4.21节。

10.5‘服务器发送的断开连接消息类型2(协议错误):‘root身份验证失败太多’’(Server sent disconnect message type 2 (protocol error): “Too many authentication failures for root”)

如果OpenSSH(或Sun SSH)服务器接收到的失败身份验证尝试比它愿意容忍的要多,那么它将生成此消息。

如果您使用Pageant并将大量密钥加载到其中,这很容易发生,因为这些服务器将每次提供的公钥都视为身份验证尝试。
这可以通过在PuTTY配置中指定身份验证所需的密钥来解决(参见4.22.8节);
PuTTY将忽略Pageant可能具有的任何其他密钥,但会要求Pageant进行身份验证,这样您就不必键入密码。

在服务器上,可以通过禁用公钥身份验证或(仅对Sun SSH)通过增加sshd_config中的maxauthtry来解决这个问题。

10.6"内存不足"(Out of memory)

当PuTTY试图分配超过系统所能提供的内存时,就会发生这种情况。
这可能是出于真正的原因:如果计算机确实耗尽了内存,或者您在终端中配置了大量的滚动行。
PuTTY无法从内存耗尽中恢复;
在给出这个错误之后,它将立即终止。

但是,当内存根本没有耗尽时,也会发生这种错误,因为PuTTY接收的数据格式错误。
在SSH-2和SFTP中,服务器在消息本身之前发送每个消息的长度;
因此PuTTY将接收长度,尝试为消息分配空间,然后接收其余的消息。
如果PuTTY接收的长度是垃圾,它将尝试分配大量内存,并以“内存不足”错误结束。

如果PuTTY和服务器没有以相同的方式启用加密(参见FAQ中的问题A.7.3),那么在SSH-2中就会发生这种情况。

这也可以发生在PSCP或PSFTP,如果您的登录脚本在服务器上生成输出:客户端程序将开始期待一个SFTP消息长度,如果它从您的登录脚本接收一些文本而是将试图解释它们作为消息长度。
详情见问题A.7.4。

10.7"内部错误"、“内部错误”、“断言失败”(‘Internal error’, ‘Internal fault’, ‘Assertion failed’)

任何以“Internal”开头的错误都不应该发生。
如果有,根据定义,PuTTY中有一个bug;
请见附件B并报告给我们。

类似地,任何以“断言失败”开头的错误消息都是PuTTY中的错误。
请向我们报告,并在错误消息框中包含准确的文本。

10.8"无法使用此私钥文件"、“无法加载私钥”、“密钥类型错误”(‘Unable to use this private key file’, ‘Couldn’t load private key’, ‘Key is of wrong type’)

在尝试公钥身份验证时,可以在PuTTY窗口中打印各种形式的错误,或者写入PuTTY事件日志(请参见3.1.3.1节),或者在尝试加载私钥时由Pageant给出。

如果您看到其中一条消息,它通常表示您试图将不合适类型的密钥加载到PuTTY、Plink、PSCP、PSFTP或Pageant中。

您可能已经指定了不适合您正在建立的连接的键。
sh -1和sh -2协议需要不同的私钥格式,而sh -1密钥不能用于sh -2连接(反之亦然)。

或者,您可能尝试过将“外部”格式(OpenSSH或ssh.com)的SSH-2密钥直接加载到PuTTY工具中,在这种情况下,您需要使用PuTTYgen将其导入PuTTY的本地格式(*. ppk)—请参见8.2.12节。

10.9"服务器拒绝我们的公钥"或"拒绝密钥"(‘Server refused our public key’ or ‘Key refused’)

在尝试公钥身份验证时,会在PuTTY窗口中打印各种形式的错误,或者写入PuTTY事件日志(请参见3.1.3.1节)。

如果您看到其中一条消息,这意味着PuTTY向服务器发送了一个公钥,并提供使用它进行身份验证,而服务器拒绝接受身份验证。
这通常意味着服务器没有被配置为接受此密钥以对该用户进行身份验证。

这几乎肯定不是PuTTY的问题。
如果看到这种类型的消息,首先应该仔细检查服务器配置。
常见错误包括在服务器上的公钥或用户的主目录上设置了错误的权限或所有权。
另外,读取PuTTY事件日志;
服务器可能已经发送了诊断消息,准确地解释了它在您的设置中遇到的问题。

第8.3节提供了一些关于服务器端公钥设置的提示。

10.10"拒绝访问"、“拒绝身份验证”(‘Access denied’, ‘Authentication refused’)

在身份验证期间,将在PuTTY窗口中打印各种形式的错误,或将其写入PuTTY事件日志(请参见3.1.3.1节)。

如果您看到其中一条消息,这意味着服务器拒绝了PuTTY尝试过的所有形式的身份验证,并且没有进一步的想法。

检查来自服务器的诊断消息的事件日志可能值得提供更多细节。

此错误可能是由错误的SSH-1服务器导致的,这些服务器无法处理我们在传输过程中用于伪装密码的各种策略。
升级您的服务器,或者使用第4.27.1节和可能的第4.27.2节中描述的工作区。

10.11"不支持可用的身份验证方法"(‘No supported authentication methods available’)

这个错误表明PuTTY已经用尽了向SSH服务器验证您身份的方法。
这可能是因为PuTTY禁用了TIS或键盘交互身份验证,在这种情况下,将禁用第4.22.4节和第4.22.5节。

10.12"包上接收的CRC错误"或"包上接收的MAC错误"(‘Incorrect CRC received on packet’ or ‘Incorrect MAC received on packet’)

当PuTTY解密SSH包且其校验和不正确时发生此错误。
这可能意味着加密或解密过程中出现了问题。
从这个错误消息中很难判断问题是在客户机中、服务器中还是在两者之间。

特别是,如果网络在TCP级别上破坏数据,那么只有使用SSH等加密协议时才会很明显,SSH显式地检查传输数据的完整性,并在检查失败时大声抱怨。
没有完整性保护(如HTTP)的协议的损坏将表现为更细微的故障(如web浏览器中错误显示的文本或图像),这些故障可能不会被注意到。

有时这是由服务器错误引起的。
一个例子是在4.27.6节中描述的bug,尽管现在您不太可能遇到它。

在这个上下文中,MAC代表消息身份验证代码。
它是一个密码术语,与以太网MAC(媒体访问控制)地址或苹果电脑毫无关系。

10.13 ‘传入的数据包在解密时出现错误’(‘Incoming packet was garbled on decryption’)

当PuTTY解密SSH包而解密的数据没有意义时,就会发生此错误。
这可能意味着加密或解密过程中出现了问题。
从这个错误消息中很难判断问题是在客户机中、服务器中还是在两者之间。

如果您得到这个错误,您可以尝试的一件事是篡改Bugs面板上“错误计算SSH-2加密密钥”(见4.27.7节)或“忽略SSH-2最大数据包大小”(见4.27.11节)的设置。

10.14"PuTTY X11 proxy:各种错误"(‘PuTTY X11 proxy: various errors’)

当PuTTY执行X转发时,报告这类错误。
它们被发送回SSH服务器上运行的X应用程序,该应用程序通常会向用户报告错误。

当PuTTY启用X转发时(参见第3.4节),它将创建一个运行在SSH服务器上的虚拟X显示。
这种显示需要身份验证才能连接到它(这就是PuTTY阻止服务器机器上的其他用户通过PuTTY代理连接到真正的X显示的方式)。
PuTTY还会向服务器发送启用客户机连接所需的详细信息,服务器应该会自动设置这种机制,因此X应用程序应该可以正常工作。

人们看到这些消息的一个常见原因是,他们使用SSH作为一个用户(假设是’ fred ‘)登录,然后使用Unix su命令成为另一个用户(通常是’ root ‘)。
原始用户’ fred ‘可以访问SSH服务器提供的X身份验证数据,并可以运行通过SSH连接转发的X应用程序。
但是,第二个用户(’ root ')不会自动将身份验证数据传递给它,因此,由于该用户经常出现此错误,所以尝试运行X应用程序常常失败。

如果发生这种情况,这不是PuTTY的问题。
您需要安排将您的X身份验证数据从您登录的用户传递到您使用su的用户。
如何做到这一点取决于你的特定系统;
事实上,许多现代版本的su都是自动执行的。

10.15"网络错误:软件导致连接中断"(‘Network error: Software caused connection abort’)

这是Windows网络代码由于某种原因终止已建立的连接时产生的一般错误。
例如,如果您将网络线缆从以太网络连接的计算机后面拉出来,或者Windows有任何其他类似的理由相信整个网络已经变得不可访问,那么就可能发生这种情况。

如果Windows在连接的另一端的机器上放弃响应它,它也会生成这个错误。
如果您的客户端和服务器之间的网络宕机,然后您的客户端尝试发送一些数据,Windows将多次尝试发送数据,然后放弃并终止连接。
特别是,如果您使用的是SSH-2,并且PuTTY尝试重新交换密钥,那么即使您没有键入任何内容,也会发生这种情况。
(有关密钥重新交换的更多信息,请参见4.19.2节)。

(如果您在连接中使用keepalives,也会发生这种情况。
其他人报告说keepalives为他们修复了这个错误。
有关keepalives的利弊,请参阅第4.13.1节。

我们不知道这个错误发生的任何原因,它代表了PuTTY中的一个错误。
问题出在你、你的Windows系统、你的网络和远程系统之间。

10.16"网络错误:按对等点重置连接"( ‘Network error: Connection reset by peer’)

当网络连接两端的计算机无法跟踪它们之间的连接状态时,就会发生此错误。
例如,如果SSH服务器崩溃,并在下一次尝试向其发送数据之前设法完全重新启动,您可能会看到它。

然而,看到这条消息的最常见原因是,如果您正在通过防火墙或NAT路由器连接,该路由器已经超时了连接。
有关更多细节,请参见FAQ中的问题A.7.8。
你可以使用纪念品来改善这种情况;
有关此的详细信息,请参见第4.13.1节。

请注意,在某些情况下,Windows可能在没有看到来自服务器的连接重置的情况下产生此错误,例如,如果到网络的连接丢失。

10.17"网络错误:连接被拒绝"(‘Network error: Connection refused’)

此错误意味着PuTTY试图连接到服务器的网络连接被服务器拒绝。
通常,这是因为服务器不提供PuTTY试图访问的服务。

检查您连接的协议是否正确(SSH、Telnet或Rlogin),并检查端口号是否正确。
如果失败,请咨询服务器管理员。

10.18"网络错误:连接超时"(‘Network error: Connection timed out’)

这个错误意味着PuTTY试图连接到您的服务器的网络连接没有收到来自服务器的任何响应。
通常,这是因为服务器机器与网络完全隔离,或者因为它被关闭。

检查您是否正确输入了服务器机器的主机名或IP地址。
如果失败,请咨询服务器管理员。

Unix在尝试将数据发送到连接并在连接期间与服务器完全失去联系时也会生成此错误。
(在Unix放弃接收服务器的回复之前,会有几分钟的延迟。)
如果您在网络关闭时将内容输入PuTTY,则会发生这种情况,但是如果PuTTY自行决定发送数据:由于sh -2中的重复密钥交换(参见4.19.2节)或由于keepalives(参见4.13.1节),也会发生这种情况。

10.19"网络错误:无法分配请求的地址"(‘Network error: Cannot assign requested address’)

这意味着操作系统拒绝了PuTTY尝试创建的网络连接参数,通常不需要实际尝试连接任何东西,因为它们是无效的。

引发此错误的常见方法是意外尝试连接到端口0,该端口不是有效的端口号。

【翻译不易,转载请注明出处 衡与墨https://blog.csdn.net/le_17_4_6】
未完待续

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/le_17_4_6/article/details/86522290

智能推荐

手把手教你安装Eclipse最新版本的详细教程 (非常详细,非常实用)_eclipse安装教程-程序员宅基地

文章浏览阅读4.4k次,点赞2次,收藏16次。写这篇文章的由来是因为后边要用这个工具,但是由于某些原因有部分小伙伴和童鞋们可能不会安装此工具,为了方便小伙伴们和童鞋们的后续学习和不打击他们的积极性,因为80%的人都是死在工具的安装这第一道门槛上,这门槛说高也不高说低也不是太低。所以就抽时间水了这一篇文章。_eclipse安装教程

分享11个web前端开发实战项目案例+源码_前端项目实战案例-程序员宅基地

文章浏览阅读4.1w次,点赞12次,收藏193次。小编为大家收集了11个web前端开发,大企业实战项目案例+5W行源码!拿走玩去吧!1)小米官网项目描述:首先选择小米官网为第一个实战案例,是因为刚开始入门,有个参考点,另外站点比较偏向目前的卡片式设计,实现常见效果。目的为学者练习编写小米官网,熟悉div+css布局。学习资料的话可以加下web前端开发学习裙:600加上610再加上151自己去群里下载下。项目技术:HTML+CSS+Div布局2)迅雷官网项目描述:此站点特效较多,所以通过练习编写次站点,学生可以更多练习CSS3的新特性过渡与动画的实_前端项目实战案例

计算质数-埃里克森筛法(间隔黄金武器)-程序员宅基地

文章浏览阅读73次。素数,不同的质数,各种各样的问题总是遇到的素数。以下我们来说一下求素数的一种比較有效的算法。就是筛法。由于这个要求得1-n区间的素数仅仅须要O(nloglogn)的时间复杂度。以下来说一下它的思路。思路:如今又1-n的数字。素数嘛就是除了1和本身之外没有其它的约数。所以有约数的都不是素数。我们从2開始往后遍历,是2的倍数的都不是素数。所以我们把他们划掉然后如...

探索Keras DCGAN:深度学习中的创新图像生成-程序员宅基地

文章浏览阅读532次,点赞9次,收藏14次。探索Keras DCGAN:深度学习中的创新图像生成项目地址:https://gitcode.com/jacobgil/keras-dcgan在数据驱动的时代,图像生成模型已经成为人工智能的一个重要领域。其中,Keras DCGAN 是一个基于 Keras 的实现,用于构建和训练 Deep Convolutional Generative Adversarial Networks(深度卷积生...

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):_spring-could org.apache.ibatis.binding.bindingexce-程序员宅基地

文章浏览阅读116次。今天在搭建springcloud项目时,发现如上错误,顺便整理一下这个异常:1. mapper.xml的命名空间(namespace)是否跟mapper的接口路径一致<mapper namespace="com.baicun.springcloudprovider.mapper.SysUserMapper">2.mapper.xml接口名是否和mapper.java接..._spring-could org.apache.ibatis.binding.bindingexception: invalid bound state

四种高效数据库设计思想——提高查询效率_数据库为什么能提高效率-程序员宅基地

文章浏览阅读1.1k次。四种高效数据库设计思想——提高查询效率:设计数据库表结构时,我们首先要按照数据库的三大范式进行建立数据。1. 1NF每列不可拆分2. 2NF确保每个表只做一件事情3. 3NF满足2NF,消除表中的依赖传递。三大范式的出现是在上世纪70年代,由于内存资源比较昂贵,所以严格按照三大范式进行数据库设计。而如今内存变得越来越廉价,在考虑效率和内存的基础上我们可以做出最优选择以达到最高效率。_数据库为什么能提高效率

随便推点

什么是配置_基于配置是什么意思-程序员宅基地

文章浏览阅读1.6k次。应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数 据库连接参数、启动参数等。配置主要有以下几个特点:配置是独立于程序的只读变量配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置配置伴随应用的整个生命周期配置贯穿于应用的整个生命周期,应用在启动时通过读取配置来初始化,在运行时根据配置调整行为。比如:启动时需要读取服务的端口号、系统在运行过程中需要读取定时策略执行定时任务等。配置可以有多种加载方式常见的有程序内部_基于配置是什么意思

二、使用GObject——一个简单类的实现-程序员宅基地

文章浏览阅读170次。Glib库实现了一个非常重要的基础类--GObject,这个类中封装了许多我们在定义和实现类时经常用到的机制: 引用计数式的内存管理 对象的构造与析构 通用的属性(Property)机制 Signal的简单使用方式 很多使用GObject..._

golang 定时任务处理-程序员宅基地

文章浏览阅读6.3k次,点赞2次,收藏9次。在 golang 中若写定时脚本,有两种实现。一、基于原生语法组装func DocSyncTaskCronJob() { ticker := time.NewTicker(time.Minute * 5) // 每分钟执行一次 for range ticker.C { ProcTask() }}func ProcTask() { log.Println("hello world")}二、基于 github 中封装的 cron 库实现package taskimport (_golang 定时任务

VC获取精确时间的方法_vc 通过线程和 sleep 获取精准时间-程序员宅基地

文章浏览阅读2.1k次。 来源:http://blog.csdn.net/clever101/archive/2008/10/18/3096049.aspx 声明:本文章是我整合网上的资料而成的,其中的大部分文字不是我所为的,我所起的作用只是归纳整理并添加我的一些看法。非常感谢引用到的文字的作者的辛勤劳动,所参考的文献在文章最后我已一一列出。 对关注性能的程序开发人员而言,一个好的计时部件既是益友,也_vc 通过线程和 sleep 获取精准时间

wml入门-程序员宅基地

文章浏览阅读58次。公司突然说要进行wap开发了,以前从没了解过,但我却异常的兴奋,因为可以学习新东西了,呵呵,我们大家一起努力吧。首先说说环境的搭建。可以把.wml的文件看做是另一种的html进行信息的展示,但并不是所有的浏览器都支持,好用的有Opera,还有WinWap。编写wml文件语法比较严格,不好的是我还没有找到好的提示工具,就先用纯文本吧。我找到了一个很好的学习网站:http://w3sc..._winwap学习

计算机考研怎么给老师发邮件,考研复试前,手把手教你怎么给导师发邮件!4点要注意...-程序员宅基地

文章浏览阅读504次。考研成绩出来后,第一件事是干什么?当然不只是高兴,而是马上给心仪的导师发邮件,先露个“名字熟”。不要以为初试考了高分或者过线了,一切都稳妥了,一时得意忘形,居然没联系导师,等想起时,导师已经属于他人了。对于一些大佬,热门导师一定要趁早发邮件咨询,一是表示尊重;二是这类老师可能已经没有统招名额,所以越早知道,越有利于下一步计划。但是,在给导师发邮件中,要注意以下4点,不求一步成功,但求先留下个好印象..._跨考计算机怎么给导师发邮件