
組み込み機能を使用して Windows で SSH サーバーを有効にしました。このサーバーはトンネルとしてのみ使用されているため、コマンドの実行を無効にしたいと思います。
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
しかし、私はログインなしWindows のシェルの代替。簡単な回避策として、上記の方法を使用して、windows32 実行可能ファイル (sfc.exe) を「シェル」として設定しました。
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\sfc.exe" -PropertyType String -Force
この方法では、クライアントは -N スイッチでのみ接続でき、そうでない場合は接続がすぐに閉じられます。ssh ユーザーは管理者であってはならないため、実際に sfc.exe を実行することはできません。(ダミー シェルには sfc.exe よりも良い選択肢があるかもしれません :P)