在 PowerShell 中,我应该使用哪种身份验证方案?

In PowerShell, which authentication scheme should I use?

使用 PowerShell 远程处理时(例如使用 Invoke-Command cmdlet),需要身份验证方案。

选项有 Kerberos、CredSSP、NTLM 和协商。

它们有什么区别?我应该使用什么?

Kerberos

优点:

  • 非常安全。
  • 无需传递隐式凭据。

缺点:

  • 需要执行用户域中的 SPN 记录(仅在计算机域中自动注册。如果是两个不同的域 – SPN 需要手动注册)。
  • 不支持第二跳远程处理。

CredSSP

比较安全 – 凭据正在传递到远程服务器并可能在那里被捕获。

优点:

  • 支持第二跳远程处理。

缺点:

  • 必须传递隐式凭据。
  • 服务器端和客户端都需要特殊配置。

NTLM

优点:

  • 无需传递隐式凭据。

缺点:

  • 不太安全。
  • 不支持第二跳远程处理。

协商

尝试 Kerberos。如果失败,回退到 NTLM。有时安全,有时不安全。

优点:

  • 无需传递隐式凭据。

缺点:

  • 不支持第二跳远程处理。