Windows SSH Server — отключение доступа к оболочке/командной строке

Windows SSH Server — отключение доступа к оболочке/командной строке

Я включил SSH-сервер на Windows с помощью встроенной функции. Поскольку этот сервер используется только как туннель, я хотел бы отключить выполнение любых команд.

На Linux, похоже, можно установить оболочку на /sbin/nologin. Какой эквивалент будет на машине Windows?

решение1

Вы можете указать исполняемый файл оболочки для использования в версии Windows через реестр (документация). Например, вы можете установить PowerShell в качестве оболочки по умолчанию следующим образом:

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

Однако я не знаю ни о какомнологинАльтернатива shell в Windows. Что касается быстрого и грязного обходного пути, я установил исполняемый файл 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 :P)

Связанный контент