
He habilitado el servidor SSH en Windows usando la función incorporada. Dado que este servidor solo se utiliza como túnel, me gustaría desactivar la ejecución de cualquier comando.
En Linux, parece posible configurar el shell en /sbin/nologin. ¿Cuál sería el equivalente en una máquina con Windows?
Respuesta1
Puede especificar el ejecutable de shell para usar en la versión de Windows a través del registro (documentación). Por ejemplo, puede configurar PowerShell como shell predeterminado de la siguiente manera:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
Sin embargo no tengo conocimiento de ningunano iniciar sesiónalternativa de shell en Windows. En cuanto a una solución rápida y sucia, configuré un ejecutable de Windows32 (sfc.exe) como "shell" usando el método anterior.
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\sfc.exe" -PropertyType String -Force
De esta manera, los clientes pueden conectarse solo con el modificador -N o, de lo contrario, la conexión se cerrará inmediatamente. Tenga en cuenta que el usuario ssh no debe ser administrador, por lo que no puede ejecutar sfc.exe. (Tal vez haya una mejor opción para el shell ficticio que sfc.exe :P)