服务器远程登录失败-CredSSP报错

这几天用 mstsc Windows 远程桌面的朋友可能会遇到错误:

原因在于最近 windows悄悄进行了一次强制更新,然后部分电脑远程登录出现这样的错误提示:

出现身份验证错误。
要求的函数不收支持。
远程计算机:xxx.xxx.xxx.xxx
远程计算机 这可能是由于CredSSP加密Oracle修正。
若要了解详细信息,请访问 https://go.microsoft.com/fwlink/?linkid=866660

出现身份验证错误。要求的函数不收支持。远程计算机 这可能是由于CredSSP加密Oracle修正。

这都是什么垃圾翻译呀,狗屁不通。

其实事情是这样的:

远程桌面使用的是“凭据安全支持提供程序协议 (CredSSP) ”,这个协议在未修补的版本中是存在漏洞的。

于是微软在 2018 年 3 月 13 日在补丁中解决了这个问题,但是默认并没有强制使用新的协议,因为一旦强制使用,假如服务器端和客户端不匹配,将无法连接。所以用户并不会感知到。

在 2018 年 5 月 8 日,微软在补丁中将客户端策略提严了一点,mstsc 登录就会有提示了,就会出现如上的错误了,用户就会知道这事了。

更进一步

关于微软这次更新,有个配置,更改这个配置可以决定是使用以前的那种连接,还是修补过的连接。这个问题会影响到服务器端和客户端 ,所以这个配置在服务器端和客户端均可配置。

针对服务器端

如果这个值是 0,那么要求客户端必须是修补了 CredSSP 的。
如果这个值是 1,那么要求客户端可以是没修补 CredSSP 的。
如果这个值是 2,那么要求客户端可以是没修补 CredSSP 的。(和 1 一样)

2018 年 5 月 8 日,微软将这个默认值修改为了 1。

针对客户端

如果这个值是 0,那么要求服务端必须是修补了 CredSSP 的。(和 1 一样)
如果这个值是 1,那么要求服务端必须是修补了 CredSSP 的。
如果这个值是 2,那么要求服务端可以是没修补 CredSSP 的。

2018 年 5 月 8 日,微软将这个默认值修改为了 1。

也就是说:

0:服务器端、客户端都必须是修补了 CredSSP 的。
1:服务器端没要求客户端、但是客户端要求服务器端是修补了 CredSSP 的。
2:服务器端、客户端都可以是没修补 CredSSP 的。

怎么处理?

根据需求,修改这个值,比如现在还没准备好全部打补丁,那么就都修改为 2。

法一、在服务器端、客户端中运行 gpedit.msc 中:“计算机配置”->“管理模板”->“系统”->“凭据分配”,这里面有个“加密 Oracle 修正”,改之。

法二、如果是 Windows 10 家庭版,没有 gpedit.msc,那么就直接改注册表吧:

HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters

新建一个 32 位的、DWORD 类型的 AllowEncryptionOracle,然后为其设置相应的值。

注意:

注册表中可能没有相应的项,那就新建。64 位系统,新建 32 位值才生效。
最后需要重启。

进步型解决:

客户端下载微软补丁解决,下载地址:https://portal.msrc.microsoft.com/zh-cn/security-guidance/advisory/CVE-2018-0886 ,选择配套自己的机器的补丁包进行下载,安装后即可使用远程桌面连接。

此方法属于顺应微软处理漏洞的方式,服务端客户端同时打补丁升级系统。因此取名进步型解决方法

方法三:(工程师模式)系统管理员请看下文:

(后续内容部分取自:http://www.cftea.com/m/c.asp?docID=8182

关于微软这次更新,有个配置,更改这个配置可以决定是使用以前的那种连接,还是修补过的连接。这个问题会影响到服务器端和客户端 ,所以这个配置在服务器端和客户端均可配置。

【针对服务器端】

如果这个值是 0,那么要求客户端必须是修补了 CredSSP 的。

如果这个值是 1,那么要求客户端可以是没修补 CredSSP 的。

如果这个值是 2,那么要求客户端可以是没修补 CredSSP 的。(和 1 一样)

2018 年 5 月 8 日,微软将这个默认值修改为了 1。

【针对客户端】

如果这个值是 0,那么要求服务端必须是修补了 CredSSP 的。(和 1 一样)

如果这个值是 1,那么要求服务端必须是修补了 CredSSP 的。

如果这个值是 2,那么要求服务端可以是没修补 CredSSP 的。

2018 年 5 月 8 日,微软将这个默认值修改为了 1。

也就是说:

0:服务器端、客户端都必须是修补了 CredSSP 的。

1:服务器端没要求客户端、但是客户端要求服务器端是修补了 CredSSP 的。

2:服务器端、客户端都可以是没修补 CredSSP 的。

怎么处理?

根据需求,修改这个值,比如现在还没准备好全部打补丁,那么就都修改为 2。

方法一、在服务器端、客户端中运行 gpedit.msc 中:“计算机配置”->“管理模板”->“系统”->“凭据分配”,这里面有个“加密 Oracle 修正”,改之。

方法二、如果是 Windows 10 家庭版,没有 gpedit.msc,那么就直接改注册表吧:

HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters

新建一个 32 位的、DWORD 类型的 AllowEncryptionOracle,然后为其设置相应的值。

注意:

注册表中可能没有相应的项,那就新建之。

还有我是 64 位系统,但是新建的 64 位值无效,我新建了 32 位值才生效。

最后需要重启。

原文地址:http://blog.51cto.com/alandai/2119409

时间: 2024-07-30 10:06:58

服务器远程登录失败-CredSSP报错的相关文章

利用xshell密钥管理服务器远程登录

1.生成公钥(Pubic Key)与私钥(Private Key): Xshell自带有用户密钥生成向导,如下图所示:点击菜单栏的工具->新建用户密钥生成向导 虽然SSH2协议中RSA和DSA算法都可以使用,但是为了保险起见,我们一般都选择RSA密钥类型,这样不论你使用的SSH协议是SSH1还是SSH2都可以使用;密钥长度1024位即 正在生成密钥,直接下一步即可 密钥名称可以随便填写,不过一般我们最好是默认名称_年月日,这样方便日后管理;一般不需要填写密钥密码,填写的话就是密钥加密码双重验证,

Oracle sys用户远程登录失败 ORA-01031

今天在管理oracle的时候发现一个很奇怪的问题,通过sqlplus sys/password as sydba 或者 sqlplus / as sysdba均可以登陆. 但通过sqlplus sys/[email protected] as sysdba登录的时候报错,显示 ORA-01031: insufficient privileges 明明是sys用户,为什么会登录不上呢? 这个原因是密码文件错误或失败导致的.Oracle通过密码文件来管理sysdba的权限.如果被赋予了 Sysdba

Linux 服务器和Windows服务器 用户登录失败次数限制【互联网金融系统漏洞排查】

1.Linux服务器用户登录失败次数限制(使用pam模块实现) /etc/pam.d/sshd    (远程ssh) /etc/pam.d/login    (终端) 1.1.用户通过ssh登录失败次数的限制 第一步)需要使用pam模块来实现此功能,检查是否有pam_tally2.so文件 # find /lib* -name pam_tally2.so /lib64/security/pam_tally2.so 第二步)修改配置文件: # vi /etc/pam.d/sshd #%PAM-1.

安装lepus,启动失败,报错:Access denied for user 'root'@'localhost' (using password: YES)

在搭建lepus过程中,lepus启动失败 用tail -f /usr/local/lepuslogs/lepus.log查看错误日志为: import functions as func File "./include/functions.py", line 285, in <module> mail_host = get_option('smtp_host') File "./include/functions.py", line 242, in g

cnmp安装失败,报错npm ERR! enoent ENOENT: no such file or directory,

1.cnmp安装失败 2.提示如下: bogon:node_modules liangjingming$ sudo npm install cnpm -g --registry=https://registry.npm.taobao.org Password: /usr/local/lib └── (empty) npm ERR! Darwin 16.4.0 npm ERR! argv "/usr/local/Cellar/node/7.8.0/bin/node" "/usr

【翻译自mos文章】OGG add Supplemental Logging 时失败,报错为 块损坏(Block Corruption)

OGG add Supplemental Logging 时失败,报错为 块损坏(Block Corruption) 来源于: Add Supplemental Logging Fails Due To Block Corruption (文档 ID 1468322.1) 适用于: Oracle Server - Enterprise Edition - Version 10.2.0.5 to 12cBETA1 [Release 10.2 to 12.1] Information in this

如何修改服务器远程登录端口

感谢百度经验的提供,原文链接:如何修改服务器远程登录端口

Spring Boot 2.1.7 启动项目失败,报错: &quot;Failed to configure a DataSource: &#39;url&#39; attribute is not specified and no embedded datasource could be configured.&quot;

一开始按照网上的很多解决办法是: 启动类头部声明@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class}),但是这样会排除掉我自己的数据库配置, 检查了很多地方都没发现问题在哪里,最后自己猜想不论怎么修改application.yml文件,都不生效,是不是因为这个配置文件就没有被加载到? 带着这个想法我就去网上搜了一下问题,有个问题看到了target目录的作用,就去想了一下是不是application.yml文件没有被

[解决方案]WebAPI+SwaggerUI部署服务器后,访问一直报错的问题

项目的背景:制作一批接口用来给前台app或者网站提供服务,因为WebApi是最近几年来比较流行和新颖的开发接口的方式,而且又属于轻型应用,所以选用它 部署的过程:建立了WebAPI项目并使用SwaggerUI为接口美化后,发布为文件系统并放到服务器上 展示的结果: 解决的过程:在当前错误的api中加入try{}catch{}方法,捕获一下异常信息根据异常信息进行判定 判定的结果:数据库sa账号登录失败,截图如下 解决的办法:在服务器上重新建立个登录的新账号xx,设置密码后,修改webapi下面的