Windows RDP(远程桌面协议)中是否存在与 SSH(在 Linux 中)公钥/私钥认证类似的东西(而不是保持正常的密码认证开放)?
我在网上找到了关于这个主题的相互矛盾的答案。我希望能够只向客户端设备分发私钥,而不是每次登录时都使用复杂的密码(假设我最终不想完全禁用密码验证)。
答案1
远程桌面支持 X.509 客户端证书,称为“智能卡身份验证”。尽管名称如此,但它应该使用本地安装的证书/密钥(即无需实际智能卡)。但据我所知,它确实需要 Active Directory 域。
所以,在某种程度上,但实际上对你来说没什么用。
答案2
如果没有 AD 域,阻止简单的用户名和密码访问的可能性如下:
- 安装适用于 Windows 的 OpenSSH(来自https://github.com/PowerShell/Win32-OpenSSH/releases或者在 Windows 10 和 2019 上它是一项可用功能),
- 使用 SSH 客户端通过密钥登录,
- 禁用通过 SSH 进行密码验证(在 %ProgramData%\ssh\sshd_config 中取消注释并将“密码验证”设置为“否”),
- 如果需要图形界面,请配置 SSH 客户端以通过 SSH 隧道传输 RDP(https://www.saotn.org/tunnel-rdp-through-ssh/),
- 通过网络(而不是本地 Windows 防火墙!)禁用“常规” RDP 流量(TCP 端口 3389),以便无法使用密码登录。
可能还有更好的选择,只需花费几美元。例如,我听说过 Yubico 的解决方案(使用硬件令牌):https://support.yubico.com/support/solutions/articles/15000028729-yubico-login-for-windows-configuration-guide