在 PowerShell 中,我应该使用哪种身份验证方案?
In PowerShell, which authentication scheme should I use?
使用 PowerShell 远程处理时(例如使用 Invoke-Command
cmdlet),需要身份验证方案。
选项有 Kerberos、CredSSP、NTLM 和协商。
它们有什么区别?我应该使用什么?
Kerberos
优点:
- 非常安全。
- 无需传递隐式凭据。
缺点:
- 需要执行用户域中的 SPN 记录(仅在计算机域中自动注册。如果是两个不同的域 – SPN 需要手动注册)。
- 不支持第二跳远程处理。
CredSSP
比较安全 – 凭据正在传递到远程服务器并可能在那里被捕获。
优点:
- 支持第二跳远程处理。
缺点:
- 必须传递隐式凭据。
- 服务器端和客户端都需要特殊配置。
NTLM
优点:
- 无需传递隐式凭据。
缺点:
- 不太安全。
- 不支持第二跳远程处理。
协商
尝试 Kerberos。如果失败,回退到 NTLM。有时安全,有时不安全。
优点:
- 无需传递隐式凭据。
缺点:
- 不支持第二跳远程处理。
使用 PowerShell 远程处理时(例如使用 Invoke-Command
cmdlet),需要身份验证方案。
选项有 Kerberos、CredSSP、NTLM 和协商。
它们有什么区别?我应该使用什么?
Kerberos
优点:
- 非常安全。
- 无需传递隐式凭据。
缺点:
- 需要执行用户域中的 SPN 记录(仅在计算机域中自动注册。如果是两个不同的域 – SPN 需要手动注册)。
- 不支持第二跳远程处理。
CredSSP
比较安全 – 凭据正在传递到远程服务器并可能在那里被捕获。
优点:
- 支持第二跳远程处理。
缺点:
- 必须传递隐式凭据。
- 服务器端和客户端都需要特殊配置。
NTLM
优点:
- 无需传递隐式凭据。
缺点:
- 不太安全。
- 不支持第二跳远程处理。
协商
尝试 Kerberos。如果失败,回退到 NTLM。有时安全,有时不安全。
优点:
- 无需传递隐式凭据。
缺点:
- 不支持第二跳远程处理。