Windows SSH 服务器 - 禁用 Shell / Cmd 访问

Windows SSH 服务器 - 禁用 Shell / Cmd 访问

我已使用内置功能在 Windows 上启用了 SSH 服务器。由于此服务器仅用作隧道,因此我想禁用任何命令的执行。

在 Linux 上,似乎可以将 shell 设置为 /sbin/nologin。在 Windows 机器上,等效的设置是什么?

答案1

您可以通过注册表指定 Windows 版本中使用的 shell 可执行文件 (文档)。例如,你可以将 powershell 设置为默认 shell,如下所示:

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

但我不知道暂无登录Windows 中的 shell 替代方案。至于一个快速而粗略的解决方法,我使用上述方法将 windows32 可执行文件 (sfc.exe) 设置为“shell”。

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\sfc.exe" -PropertyType String -Force

这样,客户端只能使用 -N 开关进行连接,否则连接将立即关闭。请注意,ssh 用户不能是管理员,因此它实际上无法运行 sfc.exe。(也许有比 sfc.exe 更好的虚拟 shell 选择 :P)

相关内容