SSH 使用公钥在 Windows 服务器上失去身份验证

SSH 使用公钥在 Windows 服务器上失去身份验证

我想从我的笔记本电脑 ( A) 通过 SSH 连接到 Windows Server ( B),然后从 powershell 针对 SQL Server ( C) 运行命令。这三者都在一个 Windows 域中。我正在运行适用于 Windows Server 2019 的内置 openssh 服务器和客户端。

如果我使用密码连接到服务器,B那么我就可以运行命令Invoke-Sqlcmd并查询 SQL Server C

但是如果我使用 RSA 密钥连接,我将无法再运行命令,因为 SQL Server 会抛出错误,提示我未通过身份验证。尝试了带密码和不带密码的密钥,保存在代理上并以管理员和普通用户身份明确提供。我还能尝试什么?

在此处输入图片描述

根据我在互联网上找到的信息,应该可以通过添加 SPN 来解决问题。但我的服务器已经有了 SPN C

服务器 c 的 SPN

还有其他线索吗?还是无法使用密钥正确进行身份验证?

答案1

我发现回答

  • 通过密码验证打开的远程会话附加有用户凭据,因此能够以用户身份进行出站身份验证。
  • 通过基于密钥的身份验证打开的远程会话没有关联的用户凭据,因此无法以用户身份进行出站身份验证。这是设计使然,并遵守标准 Windows 安全规则。

我希望使用密钥验证进行自动化以避免手动输入密码,但由于标准 Windows OpenSSH 客户端不支持此功能,因此我不得不使用 Plink。

相关内容