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

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法