我正在尝试在新服务器(服务器C)上使用CREDSSP
我已在两台其他服务器上成功设置了credssp。 (服务器A到服务器B)
我现在正尝试使用CREDSSP从服务器A连接到服务器C,但无论我做什么,我都会收到以下错误:
[SERVER_C.domain.edu]连接到远程服务器SERVER_C.domain.edu失败,并显示以下错误消息:拒绝访问。有关详细信息,请参阅about_Remote_Troubleshooting帮助主题。 + CategoryInfo:OpenError:(SERVER_C.domain.edu:String)[],PSRemotingTransportException + FullyQualifiedErrorId:AccessDenied,PSSessionStateBroken
这是我的查询,从服务器A到服务器B完美运行:
# Setting the Credentials to be used to sign into the Server B.
$pass = ConvertTo-SecureString "Password" -asplaintext -force
$mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist "domain\user.service",$pass
#
#
# The Remote Execution Command. Fully Qualified Domain name is critical since we are using Credssp.
# Credssp is being used to resolve an issue with a double hop authentication issue. Other steps setup on each computer had to be completed before Credssp would work
Invoke-Command -ComputerName SERVER_B.domain.edu -command { C:\helloWorld.ps1 } -Authentication Credssp -Credential $mycred
我已经仔细检查了服务器C(新服务器)和服务器B(旧服务器)之间我能想到的一切,但我找不到任何可能导致错误的原因。
我知道如果我取出CREDSSP部分,该脚本可以工作,除非涉及双跳。所以服务器绝对是连接。
我确保运行以下命令:
Enable-psremoting
Set-ExecutionPolicy -Scope localMachine -ExecutionPolicy RemoteSigned
Enable-WSManCredSSP -Role Client -DelegateComputer '*.reskit.org' –Force
Enable-WSManCredSSP -Role Server –Force
wsman
同样遵循以下步骤:使用gpedit.msc并查看以下策略:计算机配置 - >管理模板 - >系统 - >凭证授权 - >允许委派新证书。验证是否已启用并配置了适用于目标计算机的SPN。例如, 对于目标计算机名称" myserver.domain.com",SPN可以是以下之一:WSMAN / myserver.domain.com或WSMAN / * .domain.com。有关更多信息,请参阅 about_Remote_Troubleshooting帮助主题。
正如我所提到的,我知道服务器A设置正确,因为我将上面的脚本运行到服务器B没有问题。
任何建议都会受到赞赏。
我唯一的想法是服务器A和B正在运行Powershell 3而服务器C正在运行Powershell 5
答案 0 :(得分:0)
我注意到Enable-WSManCredSSP -Role Client命令使用* .reskit.org而不是* .domain.eu。(?)
对我来说,并不完全清楚哪些命令在服务器或客户端运行,但一见即可。我最近配置了credssp来解决双跳问题,如下所示:
在服务器上:
Enable-WSManCredSSP -Role Server -Force
Get-WSManCredSSP显示:计算机未配置为允许委派新凭据。此计算机配置为从远程客户端计算机接收凭据。
在客户端:
winrm quickconfig
Enable-WSManCredSSP -role client *.mydomain.com
Get-WSMancredSSP显示: 该计算机配置为允许将新凭据委派给以下目标:wsman / * .mydomain.com。此计算机未配置为从远程客户端计算机接收凭据。
我的客户端脚本通过以下方式启动显式远程会话:
$session = New-PSSession -Computer $computerName -Credential $credential -Authentication Credssp