You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从CentOS 7迁移至RHEL 9后PowerShell远程认证失败求助

解决RHEL9上PowerShell远程会话SPNEGO协商失败的问题

背景

在CentOS 7中,安装gssntlmssp包后,以下PowerShell脚本可正常建立远程会话:

$session = New-PSSession -ComputerName $computerName -Credential $credential -Authentication Negotiate

迁移至RHEL 9后,因官方移除gssntlmssp包,运行同一脚本时出现错误:

New-PSSession: [XXX.XXX.XXX.XXX] Connecting to remote server XXX.XXX.XXX.XXX failed with the following error message : acquiring creds with username only failed No credentials were supplied, or the credentials were unavailable or inaccessible SPNEGO cannot find mechanisms to negotiate For more information, see the about_Remote_Troubleshooting Help topic

解决方案

1. 通过EPEL源安装gssntlmssp(最直接替代)

RHEL 9官方仓库移除了该包,但可通过EPEL源获取:

  • 安装EPEL源:
    sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    
  • 安装gssntlmssp:
    sudo dnf install gssntlmssp
    
  • 重新打开终端或重启PowerShell服务后,再次执行原脚本即可。

2. 切换至Kerberos认证(环境支持时优先)

如果目标主机/域环境支持Kerberos,可直接修改认证方式,无需依赖NTLM组件:

  • 确保RHEL 9主机已加入域(通过realm join或SSSD配置完成域集成)
  • 修改脚本的认证参数:
    $session = New-PSSession -ComputerName $computerName -Credential $credential -Authentication Kerberos
    

3. 配置SSSD提供NTLM支持(无EPEL源时可选)

通过SSSD内置的NTLM模块替代gssntlmssp:

  • 安装SSSD相关组件:
    sudo dnf install sssd sssd-ntlm
    
  • 编辑/etc/sssd/sssd.conf,添加或更新域配置段(以AD域为例):
    [domain/default]
    id_provider = ad
    auth_provider = ad
    access_provider = ad
    ntlm_auth = True
    
  • 重启SSSD服务:
    sudo systemctl restart sssd
    
  • 执行原PowerShell脚本测试连接。

验证

运行以下命令确认NTLM机制已加载:

gssapi-mechanisms

输出中需包含NTLM相关条目。

内容的提问来源于stack exchange,提问作者Daniele Grillo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:32:42