从服务器返回错误的 HTTP 响应。代码 500

Bad HTTP response returned from the server. Code 500

我在 linux 上使用 pywinrm 获取 PowerShell 会话时遇到问题。 我在网站上阅读了几篇关于此的帖子和问题。但是任何可以解决我的问题的方法。

Kerberos 验证错误。这是我的 krb5.conf:

 0  [libdefaults] 
 1         default_realm = DOMAIN.COM.BR                                                                                                                          
 2         ticket_lifetime = 24000                                                                                                                                       
 3         clock-skew = 300                                                                                                                                              
 4         dns_lookup_kdc = true                                                                                                                                         
 5                                                                                                                                                                       
 6 # [realms]                                                                                                                                                            
 7 #         LABCORP.CAIXA.GOV.BR = {                                                                                                                                    
 8 #                 kdc = DOMAIN.COM.BR                                                                                                              
 9 #                 kdc = DOMAIN.COM.BR                                                                                                              
10 #                 admin_server = DOMAIN.COM.BR                                                                                         
11 #                 default_domain = DOMAIN.COM.BR                                                                                                        
12 #         }                                                                                                                                                           
13
14 [logging]                                                                                                                                                             
15                                                                                                                                                                       
16     default = FILE:/var/log/krb5libs.log                                                                                                                                  
17     kdc = FILE:/var/log/krb5kdc.log                                                                                                                                       
18     admin_server = FILE:/var/log/kadmind.log                                                                                                                              
19                                                                                                                                                                       
20 # [domain_realm]                                                                                                                                                      
21 #         .DOMAIN.COM.BR  = DOMAIN.COM.BR 
22 #         server.com = DOMAIN.COM.BR    

我的 /etc/resolv.conf 是:

search DOMAIN.COM.BR 
nameserver IP 

我的 python 代码是:

import winrm

s = winrm.Session(
    'DOMAIN.COM.BR ',
    'transport='kerberos',
    auth=('my_active_directory_user', 'my_active_directory_password'),
    server_cert_validation='ignore')

r = s.run_cmd('ipconfig', ['/all'])

而服务器return出现这个错误:

winrm.exceptions.WinRMTransportError: ('http', 'Bad HTTP response returned from server. Code 500')

服务器端口已打开。我用 nmap 看到:

5985/tcp  open  wsman 

我可以 ping 并解析服务器名称:

$ ping DOMAIN.COM.BR 

PING DOMAIN.COM.BR  (IP) 56(84) bytes of data.
64 bytes from IP: icmp_seq=2 ttl=127 time=0.410 ms
64 bytes from IP: icmp_seq=2 ttl=127 time=0.410 ms

我可以毫无问题地使用 kinit 来获取票证:

$ kinit my_active_directory_user@DOMAIN.COM.BR 

然后,列出工单:

$ klist

Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: my_active_directory_user@DOMAIN.COM.BR 

Valid starting       Expires              Service principal
05-09-2017 10:23:52  05-09-2017 17:03:50  krbtgt/DOMAIN.COM.BR @DOMAIN.COM.BR 

这是什么问题?

其他解决方案是在 krb5.conf 文件中添加带有 allow_weak_crypto 的这一行:

[libdefaults]
     ***
     allow_weak_crypto = true
     ***